如何允许特殊字符,例如 * 或?在 Antlr 的令牌中
How to allow special characters such as * or ? in a token in Antlr
我在我的 antlr 语法中指定一个标记为:
ID : [a-zA-Z0-9\*\?]; // Allow tokens such as Asdf*fdsa
但是我收到 invalid escape sequence \*
错误。如何在 Antlr 允许的令牌字符集中指定特殊字符?
*
和 ?
在字符 class 中没有特殊含义,不需要转义。所以只需删除反斜杠就可以了。
如果您希望能够匹配多个字符(如示例中所示),您还需要在字符 class 后添加一个 +
。
我在我的 antlr 语法中指定一个标记为:
ID : [a-zA-Z0-9\*\?]; // Allow tokens such as Asdf*fdsa
但是我收到 invalid escape sequence \*
错误。如何在 Antlr 允许的令牌字符集中指定特殊字符?
*
和 ?
在字符 class 中没有特殊含义,不需要转义。所以只需删除反斜杠就可以了。
如果您希望能够匹配多个字符(如示例中所示),您还需要在字符 class 后添加一个 +
。