データ部分を () で囲うと、必要な情報だけを取り出すことができる。 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
実行し、上のように出力されるか確かめよう。
外国人向けに、駅名を英語で出力するにはどうしたらよいか。
Madoka Nishimura <madoka.koeki-u.ac.jp>