因为我们想要做的不仅仅是简单地搜索文字片段,所以我们需要为特殊用途保留某些字符。在本教程中讨论的regex风格中,有12个具有特殊含义的字符:反斜杠\、插入符号^、美元符号$、句号或圆点、垂直条形或管状符号、问号?、星号或星号*、加号+、开括号(结束括号)、开口方括号[和开口括号{,这些特殊字符通常称为“元字符”。其中大多数都是单独使用时的错误。
为什么打开大括号可以转义,而关闭不能呢?,它毕竟有正则表达式的特殊意义。
发布于 2019-01-15 13:33:23
因为它不需要。无论何时,结束大括号都有其特殊的含义,任何情况下都不可能出现字面上的结束大括号:
foo{2,3}匹配"fooo“和"foooo",而foo\{2,3}匹配"foo{2,3}”。
foo{2,3\}是什么意思?在由{启动的量词中,只能出现数字和逗号。
发布于 2019-01-15 14:02:59
更确切地说,它是说:
开圆括号
(..。当单独使用[时,开始的方括号{和开口的大括号{.都是错误。
这是正确的,因为当大多数引擎在正则表达式中遇到一个开口托架时,对它们来说,它不仅仅意味着一个文字字符,所以他们试图寻找结束对,否则就是语法错误。到目前为止,它们还没有从末尾解析正则表达式来为未配对的结束括号抛出错误。
https://stackoverflow.com/questions/54199876
复制相似问题