很明显,在正则表达式中,必须对左括号“(”以及其他字符进行转义(以反斜杠为前缀)以包含“文字左括号”:因为存在“(”是前导的正则表达式选项 -在。
但是,右括号“)”为什么也一样呢?没有将“)”作为引入标记的语法结构,是吗?
那么,为什么我必须避开右括号才能按字面意思理解它们呢?
当然,也可以对其他右括号提出相同的问题。
对不起,这是一个“为什么会这样?” 问题。这可能是无法回答的。但如果有充分的理由,了解它的唯一方法就是询问!
附录:这个问题背后的理由是:例如,http ://www.regexguru.com/2008/12/dont-escape-literal-characters-that-arent-metacharacters/给出了很好的理由不给不加前缀的字符不需要前缀。
而且恕我直言,在大多数情况下,右括号不需要前缀:由于没有左括号的右括号不是正则表达式组的一部分,所以我发现在这种情况下无论如何都需要对其进行转义是完全不合逻辑的。