目前我正在研究来自 ANTLR 项目 wiki 的 JSON ANTLR 语法:http ://www.antlr.org/wiki/display/ANTLR3/JSON+Interpreter
String :
'"' ( EscapeSequence | ~('\u0000'..'\u001f' | '\\' | '\"' ) )* '"'
;
fragment EscapeSequence
: '\\' (UnicodeEscape |'b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
;
我无法得到的是他们为什么在规则中否定\\
和否定?无论如何,它将被匹配。\"
String
EscapeSequence
如果我们将其更改为~('\u0000'..'\u001f')
then 它应该意味着相同。
我错过了什么?