Java Regex问题\ b

Ant*_*ton 6 java regex

\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());
}
Run Code Online (Sandbox Code Playgroud)

有什么问题?

Boh*_*ian 19

在Java中,"\b"是一个后退字符(char 0x08),当在正则表达式中使用时将匹配后退文字.

你想要正则表达式a\b,在java中通过转义反斜杠来编码,如下所示:

"a\\b"
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你对正则表达式的含义只是部分正确\b- 它实际上意味着"单词边界"(一个单词的开头或结尾).

  • *并且*它可能在非ASCII字上失败(除非你使用的是JDK 7),其中`\ b`匹配在意想不到的地方(由`|`显示:`| | bertr |ä| ger |`). (2认同)

m0s*_*it0 5

Java 字符串中的文字反斜杠需要转义,因此正则表达式\b变成"\\b"Java 字符串。

  • 我只是表明您使用的**术语**是*不正确的*。 (2认同)