新井です。 In message "[ruby-list:37854] splitで複数の改行文字" on 04 Jul 2003 06:35:29 +0900, 堀川 久 <vzw00011 / nifty.ne.jp> wrote: > こんにちは。 > > 次のスクリプトでのsplitの挙動がおかしいような気がするのですが、なぜこ > のようになるのでしょうか。 > > s = "abc\n\ndef" > p s.split(/(\r?\n)+/) #=> ["abc", "\n", "def"] ??? > p s.gsub(/(\r?\n)+/, ":") #=> "abc:def" この質問だと何を期待しているかがわからないですよね。 仮に ["abc", "\n\n", "def"] を期待してると仮定すると s = "abc\n\ndef" p s.split(/((?:\r?\n)+)/) => ruby 1.6.8 (2002-12-24) [i586-linux] ["abc", "\n\n", "def"] => ruby 1.8.0 (2003-06-28) [i586-linux] ["abc", "\n\n", "def"] です。元のは s = "abc\n\ndef" p s.split(/(\n)\n/) => ruby 1.6.8 (2002-12-24) [i586-linux] ["abc", "\n", "def"] => ruby 1.8.0 (2003-06-28) [i586-linux] ["abc", "\n", "def"] となるのと同じです。 -- 新井康司 (Koji Arai)