2014-11-03 38 views
1

我有以下規則:antlr4 - 字符串字面轉義

value  : STRING; 

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

這是允許的"在字符串中存在一個正確和聰明的方法是什麼?它被轉義爲\"

字符串被解析如下:

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

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

回答

2

是的,這是很多其他語言如何讓報價進行轉義。請注意,~'"'還允許換行符包含在字符串文字中。如果你不想要,用~["\r\n]替換它。