使用Java验证正则表达式
我需要使用正则表达式验证字符串,该字符串必须类似于“createRobot(x,y)”,其中x和y是数字 我有点像使用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()); 但是不起作用 你能帮我吗 谢谢。您忘记了模式中的“机器人”一词。此
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,最好的在线资源是:。如果你有多余的硬币,这是非常值得的!