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\)