string - antlr 匹配任何字符,除了

标签 string char antlr match

我对片段有以下定义:

fragment CHAR   :'a'..'z'|'A'..'Z'|'\n'|'\t'|'\\'|EOF;  

现在我必须为字符串定义一个词法分析器规则。我做了以下事情:
STRING   : '"'(CHAR)*'"'

但是在字符串中,我想匹配除新行 '\n' 之外的所有字符。有什么想法可以实现吗?

最佳答案

您还需要排除 "除了换行符。试试这个:

STRING : '"' ~('\r' | '\n' | '"')* '"' ;
~否定字符集。

ut I want to negate only the new line from my CHAR set



除了这个AFAIK之外别无他法:
STRING : '"' CHAR_NO_NL* '"' ;

fragment CHAR_NO_NL : 'a'..'z'|'A'..'Z'|'\t'|'\\'|EOF;  

关于string - antlr 匹配任何字符,除了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882531/

相关文章:

string - Haskell 按第一个空格分隔单词

php - 在数组内搜索 MYSQL 输出上的值

javascript - 从字符串转换为数字,但仅转换为有效整数的字符串

python - 在没有嵌套 for 循环的情况下在 Python 中明智地连接两个字符串列表

mysql - mysql查询where条件比较char字段与int 0的一些现象

parsing - Antlr4如何构建允许关键字作为标识符的语法

antlr - -> 运算符在 ANTLR3 中是什么意思?

wpf - 文本框密码字符

c - 尝试在 C 中释放字符数组的数组会导致双重释放或损坏

javascript - 使用 ANTLR 解析 JavaScript 正则表达式