From: "K.Kosako" Date: 2002-11-28T19:29:44+09:00 Subject: [ruby-dev:18967] Re: [ONIGURUMA] \S doesn't match multibyte char (Re: [ruby-list:36618] Re: 全角文字に挟まれた半角スペースを削除するには?) nobu.nakada@nifty.ne.jpさんの <200211280837.gAS8bvQ08279@sharui.nakada.kanuma.tochigi.jp>から > > str.gsub!(/([^ ]) +(?=([^ ]))/) { > > $1.size > 1 && $2.size > 1 ? $1 : $& > > } > > Onigurumaではこのパターンがマッチしません。 > /\S\s/,/\S\S\s/,/\S{2}\s/でも同様ですが、/\S+\s/や/.\S\s/などに > はマッチします。ある程度対象文字列が長くないと発生しないようで > す(?)。 ご報告ありがとうございます。 お聞きしたいのですが、 $KCODEは、スクリプト中とコマンドラインのどちらでの指定でしょうか? スクリプト中の場合、コマンドラインで指定するとどうなるでしょうか? 正規表現コンパイル時点の文字コード指定と、サーチ時点の文字コード指定の違いに よる可能性があります。 鬼車では、コンパイル時点で指定された文字コードでサーチも行うようになっている のですが、オリジナルは、正規表現自体に文字コード指定がなかったときは 現在の$KCODEでサーチしているように見えます。(まだ完全には把握していないですが) -- 小迫@ソフネック 渋谷区恵比寿1-15-1