String.matches()不匹配

时间:2014-08-23 11:50:21

标签: java

条件不匹配。

string1 = "k"
string2 = "k(1)"
String regex = "\\\d+";
if ((string1 +"("+regex+")").matches(string2)) {
    return true;
}

2 个答案:

答案 0 :(得分:1)

其他方式。它是s.matches(regexp),而不是regexp.matches(s)

您还应该转义圆括号('('和')'),因为它们在正则表达式中具有特殊含义。所以它应该是:

string2.matches(Pattern.quote(string1) + "\\(" + regex + "\\)");

答案 1 :(得分:1)

你正在颠覆这个论点。必须在matches方法的参数中传递正则表达式,并且必须在要解析的字符串上调用该方法:

string2.matches(string1 + "(" + regex + ")")