3
我想了解語法文件: https://github.com/antlr/grammars-v4/blob/master/url/url.g4意義
STRING
: ([a-zA-Z~] |HEX) ([a-zA-Z0-9.-] | HEX)*
;
HEX
: ('%' [a-fA-F0-9] [a-fA-F0-9])+
;
我無法理解到底~
運營商的字符集:[a-zA-Z~]
我知道~
代表不是在一個集合運算符,按: https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md 即~x
是匹配任何單個字符不是由x
但如何描述的集合,當涉及到最終作爲PA解釋ttern爲STRING
以上?
感謝您的快速回復。後續問題:由於「〜」不是操作符,因此如果意圖是代字符,那麼不應該在「〜」前面加上轉義字符「\」。 –
我不這麼認爲。查看正則表達式字符類,其中'^'做否定:''a'=〜/ [^ a] /#=> nil'(否定)。''''=〜/ [a ^] /#= > 0'('^'作爲班級的一部分常規字符)。 –