駅名だけを切り出そう

データ部分を () で囲うと、必要な情報だけを取り出すことができる。 onzen あるいは onsen (温泉) に行きたいという客のためには

% ./cutout.rb station.dat 
検索パターン : on[sz]en
かみのやま温泉駅
あつみ温泉駅

と出力された方が分かりやすい。このようにするために、 切り出すプログラム部分を作ろう。cutout.rb を作るが、 regexp.rb を少し変更して作る。

#!/usr/koeki/bin/ruby

STDERR.print "検索パターン : "
pattern = STDIN.gets.chomp
request = Regexp.new(pattern, true, "e")

while  station = gets
    if request =~ station
      # print station
      if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ station
        printf("%s駅\n", $1)
      end
   end
end

実行し、上のように出力されるか確かめよう。

外国人向けに、駅名を英語で出力するにはどうしたらよいか。

本日の講義目次 / 基礎プログラミング I / 2007 年度

Madoka Nishimura <madoka.koeki-u.ac.jp>