Проблема с Java Regex \ b - PullRequest
       1

Проблема с Java Regex \ b

6 голосов
/ 08 января 2012

Я пытался \b (это означает последний символ слова) в Java Regexp, но это не работает.

String input = "aaa aaa";
Pattern pattern = Pattern.compile("(a\b)");
Matcher matcher = pattern.matcher(input);

while (matcher.find()) {
    System.out.println("Found this wiki word: " + matcher.group());
}

Что за проблема?

Ответы [ 2 ]

18 голосов
/ 08 января 2012

В Java "\b" - это символ пробела (char 0x08), который при использовании в регулярном выражении будет соответствовать литералу пробела.

Вы хотите регулярное выражение a\b, которое в java кодируется путем экранирования обратной косой черты, например:

"a\\b"

Кстати, вы только частично правильно поняли значение регулярного выражения \b - оно фактически означает «границу слова» (начало или конец слова).

4 голосов
/ 08 января 2012

Буквальные обратные слеши в строках Java необходимо экранировать, поэтому регулярное выражение \b становится "\\b" как строка Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...