なかだです。

At Tue, 29 Jan 2002 10:21:05 +0900,
Tatsuaki Nagai <Tatsuaki_Nagai / csg.kyocera.co.jp> wrote:
> 業務にてあるデータを作成するのに、/* */で囲まれた部分以外の
> 文字列を""でくくりたいのですが、よい正規表現の書き方がわかりません
> ので、今は以下のようにしています。
(snip)
> [^(\/\*.*\*\/)]でマッチすると思っていたのですが、()でくくってもひとつの
> かたまりに対する否定というものは作れないとわかり、上記のように
> しているのですが、もっとうまい方法はないのでしょうか。

  line.gsub!(%r<(?!/\*)(.+?)(/\*.*?\*/|\Z)>, '"\1"\2')

とかかな。あるいはIOから読むならこんなのとか。

  while word = gets("/*")
    s = word.chomp!("/*")
    print "\"", word, "\""
    print s
    break unless s and word = gets("*/")
    print word
  end

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦