0
我正在使用ANTLR4作爲項目,但我的任務是我不太瞭解。我有一個詞法分析規則標記化以下劃線或字母開頭的內容,不能以'xml'開頭,並且可以包含句點,破折號,字母,數字和下劃線。我如何確保開頭是一個字母或下劃線,並確保它不是'xml'?ANTLR4特定位置的特定字符
我正在使用ANTLR4作爲項目,但我的任務是我不太瞭解。我有一個詞法分析規則標記化以下劃線或字母開頭的內容,不能以'xml'開頭,並且可以包含句點,破折號,字母,數字和下劃線。我如何確保開頭是一個字母或下劃線,並確保它不是'xml'?ANTLR4特定位置的特定字符
語法:
grammar Expr;
prog: word+ EOF;
word : STRING ;
STRING : ~[xml]STRINGCHAR+;
WS : [ \t\r\n]+ -> skip;
fragment
STRINGCHAR : [_a-z] ;
匹配「男孩」和「_girl」,而不是「xmlboy」通過明確排除〜運營商定義字符串。
這個問題很抽象。你能舉一些具體的例子嗎? – Rnet
我想具體怎麼去識別一個以下劃線或字母開頭但並不以字母'xml'開頭的字符串。因此,它會接受'_hello'和'hello',但不接受'xmlhello' – Alex5775
您可以在定義令牌時使用負面預見正則表達式模式。例如:^(?! xml)。+將匹配任何不以xml開頭的東西 – Rnet