为什么打开大括号可以逃脱而关闭则不能逃脱?

时间:2019-01-15 13:31:20

标签: regex

In here we can find

  

由于我们要做的不只是搜索文字文本,我们还需要保留某些字符以供特殊使用。在本教程讨论的regex风格中,有12个具有特殊含义的字符:反斜杠\,脱字符^,美元符号$,句点或点。,竖线或竖线符号|,问号?,星号或星号*,加号+,左括号(,右括号),方括号[和左花括号{,这些特殊字符通常称为“元字符”。单独使用时,大多数都是错误。

为什么打开花括号时可以转义而关闭时不能转义?毕竟它具有正则表达式特定的含义。

2 个答案:

答案 0 :(得分:1)

因为不需要它。只要右括号具有的特殊含义,字面意义的右括号都不会出现:

foo{2,3}匹配“ fooo”和“ foooo”,而foo\{2,3}匹配“ foo {2,3}”。

foo{2,3\}是什么意思?在{开头的量词中,只能出现数字和逗号。

答案 1 :(得分:1)

更准确地说,是这样:

  

左括号( ...右括号[,以及   大括号{ ... 单独使用时会出错

是正确的,因为当大多数引擎在通过正则表达式时遇到开括号时,对他们来说意味着的不仅仅是文字字符,因此他们尝试查找闭包对,否则是语法错误。直到现在,他们还没有从头开始解析正则表达式,从而为未配对的右括号抛出错误。