西山和広です。

At Thu, 17 Jan 2008 12:05:38 +0900,
水 wrote:
> 
> #!c://ruby/bin/ruby -Ks
> 
> line = "名物|柿羊羹《かきようかん》の"
> line.gsub!(/|([亜-煕]*《)([ぁ-ん]*)(》)/,'\2')
> 
> 希望する出力は
> 
> 「名物かきようかんの」
> 
> なのですが、上記変換を行うとマッチ部分が見つからず、
> 
> 「名物|柿羊羹《かきようかん》の」
> 
> のまま出力されてしまいます。

羹(0xE3BB)が[亜-煕](0x889F-0xE086)の範囲外だからのようです。

厳密にマッチさせる必要がなければ
line.gsub!(/|.+?《(.+?)》/, '\1')
のようにゆるいマッチにしてしまうのも一つの手だと思います。


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)