Lex 运算符和转义序列
Lex operators and escape sequences
+
是Lex operators中的一个,因此如果用作文本字符,则应在其前面加上转义符\
。那么,为什么这两个会产生相同的结果呢?
[a+b] { printf("%s", yytext); } // matches a, +, or b
[a\+b] { printf("%s", yytext); } // does same as above
为什么第一行不违反转义规则?
阅读您提供的文档 link 中的几行,您会发现:
Within square brackets most operators are ignored...
("Ignored " 可能不是最好的描述;这些字符不会 被忽略 ;它们根本不特殊。所以方括号内的加号只是加号.)
+
是Lex operators中的一个,因此如果用作文本字符,则应在其前面加上转义符\
。那么,为什么这两个会产生相同的结果呢?
[a+b] { printf("%s", yytext); } // matches a, +, or b
[a\+b] { printf("%s", yytext); } // does same as above
为什么第一行不违反转义规则?
阅读您提供的文档 link 中的几行,您会发现:
Within square brackets most operators are ignored...
("Ignored " 可能不是最好的描述;这些字符不会 被忽略 ;它们根本不特殊。所以方括号内的加号只是加号.)