+
是Lex operators之一,因此如果它用作文本字符,那么它应该以转义运算符\
开头。因此,为什么这两个产生相同的结果?
[a+b] { printf("%s", yytext); } // matches a, +, or b
[a\+b] { printf("%s", yytext); } // does same as above
为什么第一行不会破坏转义规则?
答案 0 :(得分:0)
在您提供的文档链接中阅读几行,您会发现:
在方括号内,大多数运算符都会被忽略......
("忽略"可能不是最好的描述;字符不是忽略;它们根本不是特殊的。所以方括号内的加号只是一个加号。 )