如何在Java中使用Regex中的“[”

时间:2016-03-03 17:01:33

标签: java regex

我遇到了在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]

怎么做?

1 个答案:

答案 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