Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Antlr 检查第一个字符的正则表达式_Antlr_Antlr4 - Fatal编程技术网

Antlr 检查第一个字符的正则表达式

Antlr 检查第一个字符的正则表达式,antlr,antlr4,Antlr,Antlr4,我需要进行以下检查: 第一个字符可以是字母字符,也可以是_ 所有其他字符可以是字母、数字或数字_ 我试过: ^('A'..'Z' | '_') ('A'..'Z' | '0'..'9' | '_')* 但它抱怨说它不知道“^”是什么。那么,我如何检查它在ANTLR中以什么开头呢?您就快到了。删除^char(表示正则表达式中从一行开头开始的匹配),应该就是这样。@aurora91同样要添加到答案中,antlr lexer与regex的工作方式不同。它以块而不是行的形式查看输入。因此,无论从何

我需要进行以下检查:

  • 第一个字符可以是字母字符,也可以是_
  • 所有其他字符可以是字母、数字或数字_
我试过:

^('A'..'Z' | '_') ('A'..'Z' | '0'..'9' | '_')*

但它抱怨说它不知道“^”是什么。那么,我如何检查它在ANTLR中以什么开头呢?

您就快到了。删除^char(表示正则表达式中从一行开头开始的匹配),应该就是这样。

@aurora91同样要添加到答案中,antlr lexer与regex的工作方式不同。它以块而不是行的形式查看输入。因此,无论从何处开始,它都会将该模式与文本的其余部分相匹配。(至少我这么认为)