如何在 antlr 中捕获换行符并忽略 \n
How to catch newline and ignore \n in antlr
我在 antlr 中遇到字符串标记问题。我必须接受像 "abc\n" 这样的字符串,但是当我推送像
这样的字符串时会抛出错误
"abc
"
如何捕获换行符并忽略 \n ?
规则
STRING : '"' ( ~[\"\r\n] | '\' ~[\r\n] )* '"';
将匹配:
"foo bar"
"foo\bar"
"foo\"bar"
"foo\nbar"
并拒绝:
"foo
bar"
如果您还想匹配被拒绝的输入,请执行以下操作:
STRING : '"' ( ~[\"] | '\' [\"] )* '"';
我在 antlr 中遇到字符串标记问题。我必须接受像 "abc\n" 这样的字符串,但是当我推送像
这样的字符串时会抛出错误"abc
"
如何捕获换行符并忽略 \n ?
规则
STRING : '"' ( ~[\"\r\n] | '\' ~[\r\n] )* '"';
将匹配:
"foo bar"
"foo\bar"
"foo\"bar"
"foo\nbar"
并拒绝:
"foo
bar"
如果您还想匹配被拒绝的输入,请执行以下操作:
STRING : '"' ( ~[\"] | '\' [\"] )* '"';