Java正则表达式匹配不起作用

时间:2013-09-25 09:02:57

标签: java regex match

我正在尝试编写一个Search类,用于搜索包含具有id属性的dataItem的列表,以针对此类ID列表进行匹配。

但我无法让正则表达式正常工作。我已经尝试打印包含我的正则表达式的字符串变量,然后匹配而不是变量,这使得它有一些奇怪的原因。

我是用这种方法做的:

private <D extends dataItem> boolean subSearch(D d){
    boolean b = false; 

    for(String sf: d.getSearchField(searchF)){  
        System.out.println(sf); //String of id I match against
        System.out.println(searchQ); //Prints "(A0A5E1)|(A4QPC6)|(A6NC42)|(A6NMB1)|(A6NI73)"
        System.out.println(sf.matches("(A0A5E1)|(A4QPC6)|(A6NC42)|(A6NMB1)|(A6NI73)"));//Prints true
        b = b || sf.matches(searchQ);  
        if(sf.matches(searchQ)){ //Does not match when sf.matches("(A0A5E1)|(A4QPC6)|(A6NC42)|(A6NMB1)|(A6NI73)") matches
            System.out.println(searchQ);
            System.out.println(sf);
        }
    }
    return b;
}

关于sf.matches(searchQ)出了什么问题的任何想法?

1 个答案:

答案 0 :(得分:0)

我没有看到任何问题。我甚至在本地执行了这个(只有body里面的for循环),if(sf.matches(searchQ))对我来说是真的。

我相信searchQ没有正确的正则表达式。