正则表达式不会工作

时间:2012-09-19 20:38:04

标签: java regex

也许有人可以用正则表达来帮助我。这个不会工作:

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");
    }
}

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

  

a-nton OR   一个nton OR   安东

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

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

1 个答案:

答案 0 :(得分:4)

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

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

请参阅matches(String)方法中的javadoc:

  

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