使用Java验证正则表达式

时间:2011-10-02 17:31:31

标签: java regex

我需要使用正则表达式验证字符串,字符串必须类似于“createRobot(x,y)”,其中x和y是数字。

我有类似

的东西
    String ins; 

    Pattern ptncreate= Pattern.compile("^createRobot(+\\d,\\d)");
    Matcher m = ptncreate.matcher(ins);
    System.out.println(m.find());

但不起作用

你能帮助我吗?。

感谢。

2 个答案:

答案 0 :(得分:4)

您在模式中忘记了Robot这个词。此外,括号是正则表达式中的特殊字符,+应放在\d之后,而不是(之后:

Pattern.compile("^createRobot\\(\\d+,\\d+\\)$")

请注意,如果您要验证仅包含此"createRobot"字符串的输入,请注意:

boolean success = s.matches("createRobot\\(\\d+,\\d+\\)");

其中s是您要验证的String。但是如果你想要检索匹配的数字,你需要使用模式/匹配器:

Pattern p = Pattern.compile("createRobot\\((\\d+),(\\d+)\\)");
Matcher m = p.matcher("createRobot(12,345)");
if(m.matches()) {
  System.out.printf("x=%s, y=%s", m.group(1), m.group(2));
}

如您所见,在致电Matcher.matches()(或Matcher.find())后,您可以通过{{检索 n th 匹配组1}}。

答案 1 :(得分:0)

您必须在\之前添加(,因为正则表达式中的(是特殊群组字符

regexp pattren是:     ^创建(\ d +,\ d +)