プロが教える店舗&オフィスのセキュリティ対策術

今lexのプログラムを書いているのですが、正規表現の部分でつまずいてしまいました。perlの正規表現なら分かるのですが、lexと少しかってが違い困っています。lexの正規表現でコメント(プログラム中で/**/で囲まれた部分)を読み飛ばす時には、どのような正規表現にしたら是非教えてください。なお/**/の中には文字列*/は出てこないと過程していいとのことでした。
解答お願い致します。

A 回答 (3件)

正規表現じゃなくて、/* と */ とで状態を切り替えたらどうでしょう。


地の文を処理しているところと、コメント内と。

正規表現でも書けますけど面倒。

この回答への補足

できるだけ正規表現で表したいのですが・・・面倒ですよね(笑)

補足日時:2008/11/09 19:41
    • good
    • 0

#1 に激しく同意. perl の正規表現で書いてから lex に直せばいいような気はしますが, はっきりいって止めた方がいいと思

う.
    • good
    • 0

>できるだけ正規表現で表したいのですが・・・面倒ですよね(笑)


それはなぜですか?
もし自分自身の興味としてそうしたいのであれば、解答をそのまま教えて欲しいということはないですよね。

>なお/**/の中には文字列*/は出てこないと過程していいとのことでした。

何かの課題で出されていている問題で、その解答が欲しい?

んじゃあ考え方のヒントだけ。

xy を含まないものにマッチする正規表現
http://www.din.or.jp/~ohzaki/regex.htm#WithoutXY

の応用です(というかそのまま)。
/\* ('*/' を含まない文字列) \*/
という正規表現を、上のURLの先で説明されているパターンを適用してやればできるでしょう。
    • good
    • 1
この回答へのお礼

できました。ありがとうございます。

お礼日時:2008/11/10 11:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!