[ruby-list:37654] Re: マッチした部分を配列にしまう方法

From: Minero Aoki <aamine@...>
Date: 2003-05-07 09:53:14 UTC
List: ruby-list #37654
青木です。

  In mail "[ruby-list:37648] マッチした部分を配列にしまう方法"
    Hirano Satoshi <hirano@kcej.konami.com> 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*****" の部分だけを集められます。
-------------------------------------------------------------------
青木峰郎

In This Thread