私はLEXで、特別なシンボルまでコードを解析したいのだろうかと思っていました。
例えば:$display("Hello World");
ここで、取得したいのですが$display("Hello World")
、;
.
私はすでにこれを試しました: \$"display".*[^;]
、うまくいかなかったようです。
どんな助けでも大歓迎です。ありがとう。
.
任意の文字に一致し、クリーネ閉包はその前にあるものの*
多くに一致します。この場合、一致display
しているのに他の文字のリストが続きます。これには、キャプチャしたいビットとセミコロンも含まれます。
明らかな修正は、式のその部分を削除し、クリーネ閉包を[^;]
式の後に移動することです。これは、「そうでない任意の文字の複数のインスタンスに一致する」と言います;
。これには、部分式の前後に親が必要になる場合があります(字句解析プログラムによって異なるため、pricese構文を思い出せません)。
または\$"display"([^;])*
_\$"display"[^;]*