正規表現を使ってファイルのデータを抽出

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

ファイルの中から、正規表現を用いて、特定のパターンを含む行のみを抽出してみます。
まずは、データファイルの中身です。

month.dat

January
February
March
April
May
June
July
August
September
October
November
December

実行ファイルです。

month.rb

pattern = Regexp.new(ARGV[0])
filename = ARGV[1]
 
file = open(filename)
 
count = 0    # データ数(行数)
while data = file.gets    # 1行ずつデータ読み込み
    if pattern =~ data
        puts data
        count += 1
    end
end
 
print "count: ", count, "\n"
file.close

「pattern = Regexp.new(ARGV[0])」で正規表現オブジェクトを作り、while文の中の「if pattern =~ data」でパターンマッチングを評価しています。

month.datのデータから、文字列「ber」を含む月のみを抽出してみます。
一つ目の引数にパターン(ARGV[0])、2つ目の引数にファイル名(ARGV[1])を指定して、コマンドラインからmonth.rbを実行します。

ruby month.rb ber month.dat

と、コマンドラインから実行を行いますと、実行結果は・・・。

September
October
November
December
count: 4

となります。


日時: 2008年06月22日 18:57
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/324

この記事にトラックバックされる方は、参照先が分かるようにするために、「正規表現を使ってファイルのデータを抽出」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - Ruby勉強ルーム