我遇到了在Java中转义字符的问题。我的代码如下所示:
String pattern = "^\\[set (\\d+) (\\d+) \\]$";
Scanner sc = new Scanner(System.in);
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
while (true) {
String line = sc.nextLine();
Matcher m = r.matcher(line);
if (m.find()) {
System.out.println("Found value: " + m.group(1));
System.out.println("Set value: " + m.group(2));
} else {
System.out.println("NO MATCH");
}
}
我想搜索这样的指令:
[set 6 7]
怎么做?
答案 0 :(得分:0)
如果您不确定可能有多少个空格,请使用\s+
匹配1个以上的空格,\s*
匹配零个或多个空格。
查看sample demo:
String rx = "\\[set\\s+(\\d+)\\s+(\\d+)\\s*]";
Pattern p = Pattern.compile(rx);
Matcher m = p.matcher("[set 6 7]");
if (m.find()) {
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
请参阅regex demo