部分匹配不起作用

时间:2012-06-15 16:55:36

标签: java

我在下面有三个字符串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',它让我无法比赛。

2 个答案:

答案 0 :(得分:1)

您不应该将b编译为模式,您应该编译exp。这样您就可以在b中搜索exp

现在,您可以在b内搜索exp,由于expb的子集,因此永远不会找到匹配项。

答案 1 :(得分:0)

如果您只是想要部分匹配,那么您不需要正则表达式。

使用此:

if (b.contains(exp))

要检查两个字符串是否相等,您可以使用:

if (b.contentEquals(exp))