なひです. > From: "Ayanosuke" <aya / big.or.jp> > Sent: Tuesday, February 08, 2000 3:24 PM > > > > > a.gsub(/(^|[^\\])_/, '\1 ') > > > > > > > > a.gsub( /(\G|[^\\])_/, '\1 ' ) > > > > > > もしあったとして、どういう時にうれしいんでしょう? > > > > \Gの機能を使わずに,例えば上のほうの例で, > > "______" などを置換してみてください. > > > わかりますか? ^^; > > a = "____" > が > "\001 \001 _" > > なんてなってしまいますね。 "\1 "なんてやったんじゃありませんか? それは8進の1です.^^; 0% ruby-1.4.3 -ve 'a = %q(______); p a.gsub( /(^|[^\\])_/, %q(\1 ))' ruby 1.4.3 (1999-12-08) [sparc-solaris2.5.1] " _ _ _" 0% ruby-1.5.2 -ve 'a = %q(______); p a.gsub( /(^|[^\\])_/, %q(\1 ))' ruby 1.5.2 (2000-02-02) [sparc-solaris2.5.1] " _ _ _" 0% というわけで,ただの^じゃ足りません. > a.gsub(/\\?[\\_]/) { case $& when "_" then " " else $& end } > なら、変換できましたけど。 無理矢理正規表現と\数字だけで書いてみると... a.gsub( /([^\\_]*(?:\\.[^_]*)*)_/, '\1 ' ) 合ってるかな? # これが「ヨイ」プログラムかどうかは知りません.:-) -- NaHi, nakahiro, a.k.a. NAKAMURA, Hiroshi http://www.sarion.com Sarion Systems Research