From: Tadayoshi Funaba Date: 2000-06-09T02:44:34+09:00 Subject: [ruby-list:23120] Re: making Array ふなばです。 At 2000-06-09T01:45:45+0900 (2451704.19844JD), crouton@duelists.org (OZAWA Sakuro) wrote: > "1-3,5,7-9,16-17" > のような文字列(Niftyの会議室巡回コマンドの引数ですが)を、この例であれば > [1, 2, 3, 5, 7, 8, 9, 16, 17] > というArrayにするシンプルな方法はないでしょうか? > > 試行錯誤のうちに、現在は > > mes = "1-3,5,7-9,16-17" > mes = mes.gsub(/-/, '..').split(/,/).collect{|e| eval(e).to_a}.flatten > > と書いているのですが、なんだか遠回りしている気がしてなりません:-p きまぐれで、eval なしにしてみました。 m = "1-3,5,7-9,16-17" m2 = m.split(/,/).collect{|x| y = x.split(/-/) (y[0].to_i..y[-1].to_i).to_a}.flatten 変りばえしないね。しかも、長くなってるし... :) ふなば ただよし