0

也许有人可以用正则表达式帮助我。这个不行:

public static void main(String[] args){
    String pattern = "(?i).*a[\\s-\\.]?nton.*";
    String text = "a-nton vom 27.2.2012";
    if (pattern.matches(text)){
        System.out.println("FOUND");
    }else{
        System.out.println("NOT FOUND");
    }
}

如果文本包含以下单词之一,则正则表达式应该为真:

a-nton OR a nton OR anton

这个词之前和之后可以是任何文本

但上面的模式将是“未找到”

4

1 回答 1

4

更改if (pattern.matches(text)) {if (text.matches(pattern)) {

匹配方法检查调用的字符串中的模式传递给方法,因此在文本上调用它并将其传递给模式。如果您将来想要更高级的正则表达式,您可能还想查看Patternand类。Matcher

请参阅match(String)方法的 javadoc:

参数: regex - 此字符串要匹配的正则表达式

于 2012-09-19T20:39:47.287 回答