在我的代码中,我希望任何不是三个(或更多)字母的内容进入while循环以及其他任何内容继续进入代码。我对Regex并不那么自信,并希望得到如何解决它的帮助。
while (!(word.matches("(a-z){3,}")))
{
System.out.println("You have not entered in a valid word (it has to be at least 3 letters long).");
System.out.println();
System.out.print("Please enter a word of your choice: ");
word = keyboard.nextLine();
}
N.B。这是作业
答案 0 :(得分:1)
您需要使用[a-z]
,这意味着在a
和z
之间使用字符,而不是(a-z)
,这意味着完全匹配"a-z"
\w
代表word-character = [a-zA-Z0-9_]
的课程\w
= a
与z
之间的字母或A
与Z
之间或0
之间的字母和9
,或_
==> regex demo
while (!word.matches("\\w{3,}")) { // don't match more than 3
//
}
// -- OR --
while (word.matches("\\w{0,3}")) { // match between 0 and 3 is also correct
//
}