ふれあです。
In message "[ruby-list:10423] Re: split"
on 98/10/28, EGUCHI Osamu <eguchi / shizuokanet.ne.jp> writes:
>
> えぐち@エスアンドイー です。
>
> >>> On Wed, 28 Oct 1998 19:03:10 +0900, flare / kcn.or.jp (Takashi Ikeda) said:
>
> flare> ふれあです。
> たしかに違う部分はありますね。
> でも、違う部分の認識がちょっと違うような、、、
>
> flare> rbc0> '1:2:'.split ':'
> flare> ["1", "2"]
> これは perl と *同じ* です。
そうですね、すいません。Perlが勝手に配列をあるかのように見せ
ていたせいでした。Rubyのほうがよりstrictなので、問題があぶり
出された次第です。
# 情けない(^^;)。ちゃんと勉強します
> flare> 具体的には、'1:2:' で ["1", "2", ""] が出てくれたら有難いの
> flare> ですが、何か事情があるのでしょうか?
単に、Perlからの移植がスムースに行けばいいと言うそれだけのこ
とです。あまり対称性とか互換性などは考えていませんでした。
> 個人的には、前者の対称性の意味で、ふれあ さんのおっしゃるように、
> '1:2:'.split(':') が ["1", "2", ""] を返すとシックリ来るのですが、
> 、、、もはや ここも いいぢると大変な事になるでしょう。
そうですね。もう出来上がったものを直すのは他のスクリプトに対
してはひどい仕打でしょう。
In message "[ruby-list:10426] Re: split"
on 98/10/28, Wakou Aoyama <wakou / fsinet.or.jp> writes:
>
> limit の挙動を Perl に合わせるというのはどうでしょうか?
>
> $ ruby -e 'p "1:2:".split(/:/, 3)'
> ["1", "2", ""]
あまり、いじくりたくなかったので、そこまでは考えていませんで
した。
結局、1行をsplitする前にchop!せずに呼び出し、3つ目の文字列
を取り出した後にそれをchop!するということで落ち着いてます。
# 大体、文字列の最後に':'を引っ付けてからsplitすれば、問題は
# 解決できていたのですが…(しかしもう布団の中だった)。まあ、
# 解決法なんて幾らでもあるでしょうし…。
いろいろと勉強になることをお教え頂き、有難うございました。
--
( takashi-ikeda . flare / kcn.or.jp )