我在这里看 ANSI C语法。
这个页面包含了许多用于ANSI C的Lex/Flex的正则表达式。
在理解字符串字面值的正则表达式时遇到了问题。
他们提到了正则表达式\"(\\.|[^\\"])*\"
据我所知,\"
用于表示双引号,\\
代表转义字符,.
代表除了转义字符
之外的任何字符,*
表示出现零次或多次。
[^\\"]
表示除了\
和"
之外的所有字符。
因此,在我看来,正则表达式应该是\"(\\.)*\"
。
你能给出一些上述正则表达式失败的字符串吗?
或者
为什么他们使用了[^\\"]
?
"
作为分隔符,则\\.
将匹配一个字面上的点,而不是反斜杠和点。 - Avinash Raj