Regex 正则表达式与转义括号不匹配
我有一个非常简单的正则表达式,它不会像我期望的那样匹配转义括号(示例:) 正则表达式:Regex 正则表达式与转义括号不匹配,regex,word-boundary,Regex,Word Boundary,我有一个非常简单的正则表达式,它不会像我期望的那样匹配转义括号(示例:) 正则表达式: /\b(?:Test1 \(VI|Test2 \(VI\))\b/gi 样本输入: Test1 (VI <- Match Test2 (VI) <- No Match Test1(VI第二个字符串不匹配,因为最后的\b。特别是,您正在执行的有效正则表达式是 \bTest2\(VI\)\b ,哪个匹配 词界 字符串Test2(VI) 另一个词边界 “单词边界”是单词字符和
/\b(?:Test1 \(VI|Test2 \(VI\))\b/gi
样本输入:
Test1 (VI <- Match
Test2 (VI) <- No Match
Test1(VI第二个字符串不匹配,因为最后的\b
。特别是,您正在执行的有效正则表达式是
\bTest2\(VI\)\b
,哪个匹配
- 词界
- 字符串
Test2(VI)
- 另一个词边界
“单词边界”是单词字符和非单词字符之间的空白,反之亦然(为此,字符串的开头/结尾算作非单词字符)
由于)
是非单词字符,因此需要在目标字符串中后跟一个单词字符才能使)\b
匹配(例如Test2(VI)x
应成功匹配)
最小的解决方案可能是将\b
拉入第一个分支:
\b(?:Test1\(VI\b | Test2\(VI\)