簡體   English   中英

如何在Java正則表達式中轉義“ [”

[英]How to escape “[” in Regex in Java

我在用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*匹配零個或多個空格。

觀看示例演示

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));
}

請參閱正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM