永井@知能.九工大です.

From: "Tatsuaki Nagai" <Tatsuaki_Nagai / csg.kyocera.co.jp>
Subject: [ruby-list:33612] Re: ある文字列以外の部分にマッチさせる方法
Date: Tue, 29 Jan 2002 11:59:20 +0900
Message-ID: <49256B50.0010639C.00 / notes.csg.kyocera.co.jp>
> いや、まさに/* */の中に空白が入る場合を考慮して、
> if(x.include?("/*") || x.include?("*/"))
> のような判定にしたのです(コメントがちゃんと対になっているのが前提ですが)。
> 実は、やりたいことはすでに前のコードで実現できているのですが、判定文とかを
> 使わずに、正規表現のみで抽出できないかなぁと思い、みなさんにご意見をうかが
> っているのでした。

少しだけ考えてみましたが,こんなのしか思いつきませんでした.
やっぱりあまり格好良くはないですね.(^_^;

# お遊びで,コンマも文字列には含まないようにしてます.

def dquote(target)
  s = target; o = ""; r = /(\/\*.*?\*\/)/o
  while (r =~ s)
    s = $'; comment = $&
    o += $`.gsub(/[^\s,]+/, '"\0"') + comment
  end
  o += s.gsub(/[^\s,]+/, '"\0"')
end

dquote " as,d lksd  sdka /* a lsajd */ as , kj /* asd/* a*/xxx"
 #=>  "as","d" "lksd"  "sdka" /* a lsajd */ "as" , "kj" /* asd/* a*/"xxx"

-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp