由于我们要做的不只是搜索文字文本,我们还需要保留某些字符以供特殊使用。在本教程讨论的regex风格中,有12个具有特殊含义的字符:反斜杠\,脱字符^,美元符号$,句点或点。,竖线或竖线符号|,问号?,星号或星号*,加号+,左括号(,右括号),方括号[和左花括号{,这些特殊字符通常称为“元字符”。单独使用时,大多数都是错误。
为什么打开花括号时可以转义而关闭时不能转义?毕竟它具有正则表达式特定的含义。
答案 0 :(得分:1)
因为不需要它。只要右括号具有的特殊含义,字面意义的右括号都不会出现:
foo{2,3}
匹配“ fooo”和“ foooo”,而foo\{2,3}
匹配“ foo {2,3}”。
foo{2,3\}
是什么意思?在{
开头的量词中,只能出现数字和逗号。
答案 1 :(得分:1)
更准确地说,是这样:
左括号
(
...右括号[
,以及 大括号{
... 单独使用时会出错。
是正确的,因为当大多数引擎在通过正则表达式时遇到开括号时,对他们来说意味着的不仅仅是文字字符,因此他们尝试查找闭包对,否则是语法错误。直到现在,他们还没有从头开始解析正则表达式,从而为未配对的右括号抛出错误。