我在使用\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");
找到匹配
知道我做错了吗?
答案 0 :(得分:5)
在Java中编写正则表达式时,您需要确保转义所有反斜杠,因此正则表达式\bINSERT\b
变为"\\bINSERT\\b"
作为Java字符串。
如果不转义反斜杠,则字符串文字中的\b
将被解释为退格符。
答案 1 :(得分:2)
请改用: -
Pattern insPtrn = Pattern.compile("\\bINSERT\\b")
您需要使用额外的反斜杠转义\b
..