Java Regex Word Boundaries

嗨,我有以下代码,这是为了找到单词“是”,但不是当它在另一个字符串中,所以单词“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())); } } 

双逃避它:

 Pattern p = Pattern.compile("\\bis\\b"); 

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