【发布时间】:2016-07-30 21:25:50
【问题描述】:
我正在尝试使用 Scanner System.in 函数来尝试使用 Java 正则表达式来验证用户输入。我要验证的是一个用户输入,它只能包含字母作为输入,并且可以包含多个单词。如果我输入例如(“Test1”)它会抛出一条消息,警告我必须只输入字母,并提示再次输入,但是如果我要输入(“Test 1”),那么它会通过我的正则表达式,似乎是空格导致了这个问题,但是在我的正则表达式中添加空格并没有解决我的问题。任何帮助将不胜感激。以下是我的代码有问题的部分:
System.out.println("Please enter the your name: ");
while(!input.hasNext("[a-zA-Z]+")){
System.out.println("Your name must consist of only letters");
input.nextLine();
}
String name = input.nextLine();
这对某人来说可能显然是错误的,但我是 Java 和正则表达式的新手,并且整天都在试图找出问题所在,但没有成功。
感谢您的宝贵时间。
【问题讨论】:
-
试试
^[a-zA-Z_ ]*$无论如何都不完美,但对于新手来说已经足够简单了。 -
可能是
^[a-zA-Z_ ]+$,所以不允许使用空字符串。
标签: java regex string expression