如何在规则中排除多个字符?

时间:2009-12-10 08:14:25

标签: string antlr lexical-analysis

我正在尝试在ANTLRWorks中编写字符串匹配规则,我需要匹配转义引号或任何非引号字符。我可以匹配转义引号,但是我遇到了另一部分的问题:~'\'' | ~'\"'最终将匹配所有内容,~'\'\"'似乎被语法生成器忽略(至少是可视化显示)。什么样的角色会让我得到我想要的东西?

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

StringLiteral
    :    '"' (EscapeSequence | StringChar)* '"'
    ;

EscapeSequence
    :    '\\' ('"' | '\\')
    ;

StringChar
    :    ~('"' | '\\')
    ;