From: Minero Aoki Date: 2003-05-07T18:53:14+09:00 Subject: [ruby-list:37654] Re: マッチした部分を配列にしまう方法 青木です。 In mail "[ruby-list:37648] マッチした部分を配列にしまう方法" Hirano Satoshi wrote: > こんにちは。 > Rubyを使い始めて日の浅いひらのです。 > > 現在、以下のような問題に突き当たっております。 > 4: > 3のファイルの各行を要素として配列に読み込み、efct****** の部分だけを抜き出し > て配列にしまい、かつ2で作成した配列との集合の差を取り出したいと思っていま > す。その時、 > diff_lines = file_lines_shaped - done_efct_lines > > としてやると、その2とその3ではdiff_linesの中にまんま、file_lines_shapedが収 > まってしまうようなのです。 done_efct_lines の元ファイルが \r\n 終端ということはないですか。 そうすると \n 終端のリストから \r\n 終端のリストを引くことになる ので、file_lines_shaped がそっくりそのまま残ります。 そうでなかったとしてもファイルの最後は行末コードがなかったり するので、できるだけ行末コードを取った状態で集めたほうがいいです。 file_lines_shaped で言うなら file_lines_shaped = File.readlines(2で作成したファイル) ↓ file_lines_shaped = File.readlines(2で作成したファイル).map {|line| line.strip } とすれば "efct*****" の部分だけを集められます。 ------------------------------------------------------------------- 青木峰郎