Java RegEx中的Word boundary \ b

时间:2012-10-11 16:22:04

标签: java regex

我在使用\b作为Java Regex中的单词分隔符时遇到了困难。

对于

text = "/* sql statement */ INSERT INTO someTable";

Pattern.compile("(?i)\binsert\b");找不到匹配项

Pattern insPtrn = Pattern.compile("\bINSERT\b");找不到匹配项

Pattern insPtrn = Pattern.compile("INSERT");找到匹配

知道我做错了吗?

2 个答案:

答案 0 :(得分:5)

在Java中编写正则表达式时,您需要确保转义所有反斜杠,因此正则表达式\bINSERT\b变为"\\bINSERT\\b"作为Java字符串。

如果不转义反斜杠,则字符串文字中的\b将被解释为退格符。

答案 1 :(得分:2)

请改用: -

Pattern insPtrn = Pattern.compile("\\bINSERT\\b")

您需要使用额外的反斜杠转义\b ..