antlr4 - 字符串中的字符串转义

时间:2014-11-03 10:50:16

标签: escaping antlr antlr4

我有以下规则:

value      : STRING;

STRING     : '"' ('\\"' | ~'"')* '"';

这是一种允许"出现在字符串中的正确而明智的方法吗?它被转义为\"

字符串解析如下:

final ValueContext c = ...;
final String s = c.STRING().getText(); 

s.substring(1, s.length() - 1).replaceAll("\\\\\"", "\"");

1 个答案:

答案 0 :(得分:3)

是的,这就是有多少其他语言允许转义报价。请注意,~'"'还允许换行符包含在字符串文字中。如果您不想这样,请将其替换为~["\r\n]