Antlr 如何从字符串中删除引号

Antlr 如何从字符串中删除引号,antlr,antlr4,Antlr,Antlr4,我编写了一个简单的规则来匹配ANTLR语法中的字符串: STRING : '"' (ESC | ~["\\])* '"' ; 实际上,我需要字符串的内容,而不是引号,它们只需要匹配字符串 我找到了ANTLR 3的解决方案。但我想知道是否有一种解决方案可以在不使用自定义代码的情况下实现相同的功能。这应该可以: STRING : '"' (ESC | ~["\\])* '"' {setText(getText().substring(1, getText().len

我编写了一个简单的规则来匹配ANTLR语法中的字符串:

STRING
   :   '"' (ESC | ~["\\])* '"'
   ;
实际上,我需要字符串的内容,而不是引号,它们只需要匹配字符串

我找到了ANTLR 3的解决方案。但我想知道是否有一种解决方案可以在不使用自定义代码的情况下实现相同的功能。

这应该可以:

STRING
   :   '"' (ESC | ~["\\])* '"'
   {setText(getText().substring(1, getText().length()-1));}
   ;
它简单地从字符串中删除第一个和最后一个字符


摘自

antlr4中是否有在lexer规则中处理此问题的更新?我也希望避免使用动作。