所以我创建了一个程序,它会遍历一个输入文件,并且只提取其中包含 2 个单词的行。然后我尝试仅拉出仅包含字母的行。如果有任何数字我需要它失败。到目前为止,经过研究,我已经想出了下面的代码,但我只是想知道如何让“测试 123”失败。它一直通过。`下面是对我的 match 函数和函数本身的调用。 * *
else if (line.matches("[\\w\\-.]{2,} [\\w\\-.]{2,}"))
{
getmatch();
}
public static String getMatch()
{
if (line.matches("/[a-zA-Z]+/g") )
{
match=line;
}
return match;
}
最佳答案
我将使用以下通用模式来匹配具有两个仅字母单词的行:
\s*[A-Za-z]+\s+[A-Za-z]+\s*
此模式还将考虑两个单词两侧或之间的任意数量的空格。请注意,String#matches
默认情况下包含输入正则表达式模式周围的开始和结束 anchor ,因此我们不需要显式包含它们,尽管我确实将它们包含在下面的演示中。
您可以将此模式用作:
String input = " Hello World ";
if (input.matches("\\s*[A-Za-z]+\\s+[A-Za-z]+\\s*")) {
System.out.println("Found a match!");
}
Demo
关于java - 正则表达式 Java "test 123"需要失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53954388/