我试图让一个Java正则表达式的工作使用Scanner
System.in
功能,试图验证用户输入。我想验证的是只能包含字母作为输入的用户输入,并且可以包含多个单词。如果我的例子(“测试1”)中键入它会抛出一个信息,警告我必须输入字母,并提示在重新进入,但是如果我可以键入(“测试1”),那么它会通过我的正则表达式,这似乎是空间导致这个问题,但在我的正则表达式中添加一个空间还没有解决我的问题。任何帮助将不胜感激。下面是我的代码是有问题的部分:Java的扫描仪hasNext()字符串的正则表达式验证
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_] * $'这并不完美,但它很简单足以让新手理解。 – TEK
也许'^ [a-zA-Z_] + $'这样空字符串是不允许的。 – totoro