From: nobu.nakada@... Date: 2002-11-30T16:18:03+09:00 Subject: [ruby-dev:18975] Re: [ONIGURUMA] \S doesn't match multibyte char (Re:[ruby-list:36618]Re:全角文字に挟まれた半角スペースを削除するには?) なかだです。 At Sat, 30 Nov 2002 15:29:32 +0900, K.Kosako wrote: > > > str.gsub!(/([^ ]) +(?=([^ ]))/) { > > > $1.size > 1 && $2.size > 1 ? $1 : $& > > > } > > > > Onigurumaではこのパターンがマッチしません。 > > /\S\s/,/\S\S\s/,/\S{2}\s/でも同様ですが、/\S+\s/や/.\S\s/などに > > はマッチします。ある程度対象文字列が長くないと発生しないようで > > す(?)。 > > 直りました。 > 一部の文字クラスに対して、最適化情報の生成に間違いがありました。 > (対象文字列が7バイト以上ない場合、最適化情報を使用しないように > しているので、短いときには発生しませんでした。) 確認しました。大丈夫そうです。 > glibcにマルチバイト(国際化だったかな?)正規表現ライブラリが組み込まれた > らしいので、Ruby M17Nでも、そちらが使えるようならそのほうが良いかもねー。 > 見てないので、中身は知りませんけど。 しかし、必ずしもRubyの正規表現と一致するわけじゃないのでは。そ れにglibc以外の環境を考えると、いずれにせよライブラリを持ってい なければならないわけで…。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦