Java Regex Word Границы

Привет, у меня есть следующий код, который предназначен для поиска слова "есть", но не тогда, когда оно находится в другой строке, поэтому слово "это" не должно возвращать совпадение, поэтому я использую \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()));
    }

}

1 ответ

Решение

Двойной побег это:

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

Regex в Java требует от вас вдвойне избегать определенных специальных символов regex, один для Java и другой для базового движка regex.

Другие вопросы по тегам