私は文法ファイルを理解しようとしています: 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のように末尾に来るときどのように解釈するか:あたりとして集合演算子ではないため~
スタンドが、ことを知っています上記のSTRING
のためのトーン?
クイックリバートありがとう。フォローアップの質問: "〜"は演算子ではないので、エスケープ文字 "\"は通常 "〜"の前に置かれるべきではありません。 –
私はそうは思わない。 '^'が否定を行う正規表現の文字クラスを見てください: '' =〜/ [^ a] /#=> nil'(否定) ''^'=〜/ [a ^] /#= > 0 '('^'はクラスの一部として通常の文字として扱われます)。 –