• ベストアンサー

正規表現について

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

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

>できるだけ正規表現で表したいのですが・・・面倒ですよね(笑) それはなぜですか? もし自分自身の興味としてそうしたいのであれば、解答をそのまま教えて欲しいということはないですよね。 >なお/**/の中には文字列*/は出てこないと過程していいとのことでした。 何かの課題で出されていている問題で、その解答が欲しい? んじゃあ考え方のヒントだけ。 xy を含まないものにマッチする正規表現 http://www.din.or.jp/~ohzaki/regex.htm#WithoutXY の応用です(というかそのまま)。 /\* ('*/' を含まない文字列) \*/ という正規表現を、上のURLの先で説明されているパターンを適用してやればできるでしょう。

hullhouse
質問者

お礼

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

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

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

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

正規表現じゃなくて、/* と */ とで状態を切り替えたらどうでしょう。 地の文を処理しているところと、コメント内と。 正規表現でも書けますけど面倒。

hullhouse
質問者

補足

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

関連するQ&A