Java Regex Word Boundaries

use*_*550 6 java regex cpu-word word-boundary

嗨,我有以下代码,意思是找到单词"是",但不是当它在另一个字符串中,所以单词"this"不应返回匹配,所以我使用\ b.但是下面的代码没有找到匹配,我无法弄清楚为什么?

public static void main(String[] args) {
    String a = "This island is beautiful.";
    Pattern p = Pattern.compile("\bis\b");
    Matcher m = p.matcher(a);

    while(m.find()){

        System.out.println(a.substring(m.start(), m.end()));
    }

}
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 13

双逃避它:

Pattern p = Pattern.compile("\\bis\\b");
Run Code Online (Sandbox Code Playgroud)

Java中的正则表达式要求您双重逃避某些特殊的正则表达式符号,一个用于Java,另一个用于底层正则表达式引擎.