基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログラミング) 「候補駅を選べるようにするには」 講義ノート目次

候補の駅を出力したあと、ユーザに選んでもらうようにしたい。 キーボード操作を簡単にするため、候補の数字を選ぶように作る。 regexp_readdata.rb から regexp_select.rb を作る。


#!/usr/koeki/bin/ruby
#coding: euc-jp

name = Array.new候補の駅名を選ぶ

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

open("station.dat","r") do |candidate|
i = 0候補を数える while station = candidate.gets
if request =˜ station
# print station if /(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =˜ station
name[i] = $1 printf("%d \t %s駅\n", i+1, name[i]) i += 1
end
end
end
end

実行すると

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

となる。name[i]i+1 番目の候補が格納されている。 出力された候補の中から ユーザが選ぶ ように作るにはこちら。