- ベストアンサー
正規表現について
今lexのプログラムを書いているのですが、正規表現の部分でつまずいてしまいました。perlの正規表現なら分かるのですが、lexと少しかってが違い困っています。lexの正規表現でコメント(プログラム中で/**/で囲まれた部分)を読み飛ばす時には、どのような正規表現にしたら是非教えてください。なお/**/の中には文字列*/は出てこないと過程していいとのことでした。 解答お願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>できるだけ正規表現で表したいのですが・・・面倒ですよね(笑) それはなぜですか? もし自分自身の興味としてそうしたいのであれば、解答をそのまま教えて欲しいということはないですよね。 >なお/**/の中には文字列*/は出てこないと過程していいとのことでした。 何かの課題で出されていている問題で、その解答が欲しい? んじゃあ考え方のヒントだけ。 xy を含まないものにマッチする正規表現 http://www.din.or.jp/~ohzaki/regex.htm#WithoutXY の応用です(というかそのまま)。 /\* ('*/' を含まない文字列) \*/ という正規表現を、上のURLの先で説明されているパターンを適用してやればできるでしょう。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
#1 に激しく同意. perl の正規表現で書いてから lex に直せばいいような気はしますが, はっきりいって止めた方がいいと思う.
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.1
正規表現じゃなくて、/* と */ とで状態を切り替えたらどうでしょう。 地の文を処理しているところと、コメント内と。 正規表現でも書けますけど面倒。
質問者
補足
できるだけ正規表現で表したいのですが・・・面倒ですよね(笑)
お礼
できました。ありがとうございます。