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

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

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

スポンサーリンク

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

となります。

スポンサーリンク
 
スポンサーリンク