0

所以我创建了一个程序,它会通过一个输入文件并且只提取其中包含 2 个单词的行。然后,我试图只拉出只有字母的行。如果有任何数字,我需要它失败。到目前为止,经过研究,我已经提出了下面的代码,只是坚持如何让“测试 123”失败。它一直在传递。`下面是对我的匹配函数和函数本身的调用。* *

else if (line.matches("[\\w\\-.]{2,} [\\w\\-.]{2,}"))
        {
            getmatch();
        } 




public static String getMatch() 
    {
        if (line.matches("/[a-zA-Z]+/g") )
        {
            match=line;
        }

        return match;
    }
4

1 回答 1

1

我将使用以下一般模式来匹配带有两个纯字母单词的行:

\s*[A-Za-z]+\s+[A-Za-z]+\s*

此模式还将考虑两个单词两侧或它们之间的任何数量的空格。请注意,String#matches默认情况下包括输入正则表达式模式周围的开始和结束锚点,因此我们不需要明确包括它们,尽管我在下面的演示中确实包括了它们。

您可以将此模式用作:

String input = " Hello World  ";
if (input.matches("\\s*[A-Za-z]+\\s+[A-Za-z]+\\s*")) {
    System.out.println("Found a match!");
}

演示

于 2018-12-28T06:14:28.857 回答