我的正则表达式模式不起作用

时间:2014-04-09 00:16:08

标签: java regex

我需要制作一个接受格式为(_,_)的字符串的模式,例如:"(0,0)""(1,3)""(5,8)"等。

我写了以下条件:

if (name.equals("(\\d,\\d)")) {
   System.out.println("accepted")
}

2 个答案:

答案 0 :(得分:3)

您需要使用\转义括号。它们在正则表达式中具有特殊含义(用于分组)。

您还需要调用正确的方法,一种与正则表达式匹配的方法,该方法不是equals(),而是matches()

答案 1 :(得分:1)

name.equals()实际上并不接受正则表达式。您正在寻找matches()接受正则表达式。

你也必须逃避括号,因为它们在正则表达式中具有特殊含义。

if(name.matches("\\(\\d,\\d\\)") {
    System.out.println("accepted");
}