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