字符串中字符串的 Antlr 语法

Antlr grammar for a string inside a string

"Choose ""A"“适用于所有区域。”是字符串,我的字符串语法规则是 STRING : '\"' .* '\"' ;它没有按照我想的那样进行,直到 "choose " 才停止。我可以写什么规则来接受上述输入。

像这样的东西就可以了:

STRING
 : '"' ( ~["] | '""' )* '"' 
 ;

请注意,上面的规则也接受字符串文字中的换行符。如果您不希望这样,请在否定集中包含 \r\n

STRING
 : '"' ( ~["\r\n] | '""' )* '"' 
 ;