From: Shin-ichiro HARA Date: 1997-11-14T19:37:19+09:00 Subject: [ruby-dev:844] Re: request SCAN 原です。 > まつもと ゆきひろです > |"abcd".scan(/../) #==> ["ab", "cd"] > | > |というのはどうでしょう? > |複雑ではあるけど、こっちの方が Perl に近いかな。 > > うーん,これってどういう動作なんでしょう? > > * 括弧のないパターンに対しては全てのマッチの配列を返すべき > である.括弧のあるパターンに関しては現行のまま > > * 現行の非イテレータのscanは最初のマッチを返すが,この仕様 > は止めて,全てのマッチの配列を返すべきだ > > * 現行の非イテレータのscanは最初のマッチを返すが,この仕様 > は止めて,全てのマッチの配列を返すべきだ.で,パターンに > 括弧を含まない時には配列の配列ではなく文字列の配列を返す. 1番目の意味で言いました。2番目、3番目は scan の仕様の大変更 になるので、どのみち却下でしょう? しかし、本当は3番目の機能を持つメソッドが欲しいのです。 scan の機能は、Perl の正規表現の g オプションの事が念頭にあるわ けですが、Perl では配列の配列が無いので、ややこしかったわけです よね。ruby の方がかっこいい。 しかし Perl の方が若干有利な所がまだある。 # 最後の数値でソート sort{ ($a =~ /\d+/g)[-1] cmp ($b =~ /\d+/g)[-1] }(@array); みたいなのを ruby でも書きたいのです。(^^;