我在antlr中遇到字符串令牌问题。我必须接受“ abc \ n”之类的字符串,但是当我按
之类的字符串时会引发错误"abc
"
如何捕获换行符并忽略\ n?
答案 0 :(得分:0)
规则
STRING : '"' ( ~[\\"\r\n] | '\\' ~[\r\n] )* '"';
将匹配:
"foo bar"
"foo\\bar"
"foo\"bar"
"foo\nbar"
并拒绝:
"foo
bar"
如果您还想匹配被拒绝的输入,请执行以下操作:
STRING : '"' ( ~[\\"] | '\\' [\\"] )* '"';