java - 如何在Java中的正则表达式中转义 "["

标签 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]

如何做到这一点?

最佳答案

如果您不确定可能有多少个空格,请使用 \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

关于java - 如何在Java中的正则表达式中转义 "[",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778377/

相关文章:

python - 如何跳过文件中已存在的行?

python - 如何检测双字节数字

PHP preg_replace string – 括号内的内容

java - 如何在Spring中使用Template Hibernate保存继承的类

java - 使用 BigInteger 类的负指数

java - 定义自定义用户类型会破坏 hibernate 状态

Python:如何用字典中相应的数据替换字符串中的数值

java - 为什么即使通过检查我也会得到 NullPointerException?

java - 我无法使用自己的注释

php - 为允许 (!@#$%) 的密码验证创建 preg_match