Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Regex 如何识别Antlr语法中的行首?_Regex_Intellij Idea_Antlr4 - Fatal编程技术网

Regex 如何识别Antlr语法中的行首?

Regex 如何识别Antlr语法中的行首?,regex,intellij-idea,antlr4,Regex,Intellij Idea,Antlr4,在我使用的语言中,某些关键字必须位于行的开头。这主要是因为语言中的字符串值可以跨越多行,字符串可以很容易地包含这些关键字 我使用的旧yacc/lex语法实现很容易处理这个问题,因为lexer使用普通正则表达式来匹配文本模式,例如 ^description { actions } 在行首匹配“说明”,然后执行操作 在Antlr4中如何执行此操作?它似乎不支持用于词汇匹配的适当正则表达式。我正在使用IntelliJ插件,当我在任何lexer规则RHS上使用“^”字符时,它会抱怨。你的问题是什

在我使用的语言中,某些关键字必须位于行的开头。这主要是因为语言中的字符串值可以跨越多行,字符串可以很容易地包含这些关键字

我使用的旧yacc/lex语法实现很容易处理这个问题,因为lexer使用普通正则表达式来匹配文本模式,例如

^description    { actions }
在行首匹配“
说明”
,然后执行操作


在Antlr4中如何执行此操作?它似乎不支持用于词汇匹配的适当正则表达式。我正在使用IntelliJ插件,当我在任何lexer规则RHS上使用“
^
”字符时,它会抱怨。

你的问题是什么?也就是说,使用
DescKeyWord:BOL[\t]*“description”。是的,这也是我得出的结论,尽管您使用实际的BOL标记将其正式化。