单引号字符和双引号字符串

Single-quoted chars and double-quoted strings

我正在研究使用 ANTLR4 的解析器和词法分析器。我想保留字符(单字符)单引号和字符串(多于一个字符)双引号,但我是正则表达式的新手,我不能这样做,所以我想要一些例子,我也有一些问题在 ANTLR4 中我的正则表达式语句中的引号。

例如,对于字符串和字符,它应该只接受以下内容:

mychar = 'a'; // Chars single-quoted and single-char'd.
mystring = "test"; // Strings with MORE THAN ONE CHARS and double-quoted.

对于单引号字符,类似这样的内容:

CHAR
 : '\'' ( '\' ~[\r\n] | ~[\'\r\n] ) '\''
 ;

其中 '\' ~[\r\n] 匹配转义字符(但不匹配转义换行符),~[\'\r\n] 匹配 \' 和换行符以外的字符字符

还有一个非常相似的双引号规则:

STRING
 : '"' ( '\' ~[\r\n] | ~[\"\r\n] )* '"'
 ;