使用Java验证正则表达式

使用Java验证正则表达式,java,regex,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()); 但是不起作用 你能帮我吗 谢谢。您忘记了模式中的“机器人”一词。此

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

我有点像

    String ins; 

    Pattern ptncreate= Pattern.compile("^createRobot(+\\d,\\d)");
    Matcher m = ptncreate.matcher(ins);
    System.out.println(m.find());
但是不起作用

你能帮我吗


谢谢。

您忘记了模式中的“机器人”一词。此外,括号是正则表达式中的特殊字符,
+
应该放在
\d
之后,而不是
之后(

请注意,如果要验证仅由此
“createRobot”
-字符串组成的输入,您还可以执行以下操作:

boolean success = s.matches("createRobot\\(\\d+,\\d+\\)");
其中,
s
是要验证的
字符串。但如果要检索匹配的数字,则需要使用模式/匹配器:

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()
)之后,您可以通过
group(n)检索n个匹配组

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

请注意,如果要验证仅由此
“createRobot”
-字符串组成的输入,您还可以执行以下操作:

boolean success = s.matches("createRobot\\(\\d+,\\d+\\)");
其中,
s
是要验证的
字符串。但如果要检索匹配的数字,则需要使用模式/匹配器:

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()
)之后,您可以通过
group(n)
检索n匹配组,您必须在
之前添加
\
,因为
在regex中是特殊的组字符

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

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

regexp模式是:
^create(\d+,\d+)

如果它应该是createRobot,为什么表达式中只有“create”?我忘了发布它,但在代码中我有“createRobot”,或者如果它应该是createRobot,为什么表达式中只有“create”?我忘了发布它,但在代码中我有“createRobot”,对不起,非常感谢,真的很有效,有没有办法获得数字“x”和“y”?这正是我要搜索的,谢谢!!最后一个问题,你能给我一个网页或其他资源,让我可以了解更多关于正则表达式的信息吗?@JuanS,最好的在线资源是:。如果你有多余的硬币,这是非常值得的!非常感谢,非常有效,有任何方法可以获得数字“x”和“y”?这正是我要搜索的,谢谢!!最后一个问题,你能给我一个网页或其他资源,让我可以了解更多有关正则表达式的信息吗?@JuanS,最好的在线资源是:。如果你有多余的硬币,这是非常值得的!