我在下面有三个字符串a,b,c,我试图让String exp与String b进行部分匹配,但每次运行代码时我都得不到匹配。
String a = "ID = '5' && name='abc' || level='5'";
String b = "ID = '6' && name='def' || level='6' && year='2012'";
String exp = "ID = '6' && name='def' || level='6'";
我的代码:
Pattern p = Pattern.compile(b);
Matcher m = p.matcher(exp);
if(m.matches()){
System.out.println("Perfect Match");
}
else if(m.hitEnd()){
System.out.println("Partial Match");
}
else{
System.out.println("No Match");
}
即使我删除&&年='2012',它让我无法比赛。
答案 0 :(得分:1)
您不应该将b
编译为模式,您应该编译exp
。这样您就可以在b
中搜索exp
。
现在,您可以在b
内搜索exp
,由于exp
是b
的子集,因此永远不会找到匹配项。
答案 1 :(得分:0)
如果您只是想要部分匹配,那么您不需要正则表达式。
使用此:
if (b.contains(exp))
要检查两个字符串是否相等,您可以使用:
if (b.contentEquals(exp))