我正在尝试编写一个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)出了什么问题的任何想法?
答案 0 :(得分:0)
我没有看到任何问题。我甚至在本地执行了这个(只有body里面的for循环),if(sf.matches(searchQ))
对我来说是真的。
我相信searchQ
没有正确的正则表达式。