候補の駅を出力したあと、ユーザに選んでもらうようにしたい。 キーボード操作を簡単にするため、候補の数字を選ぶように作る。 regexp_readdata.rb から regexp_select.rb を作る。
#!/usr/koeki/bin/ruby
name = Array.new
STDERR.print "検索パターン: "
pattern = STDIN.gets.chomp
request = Regexp.new(pattern, true, "e")
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 番目の候補が格納されている。 出力された候補の中からユーザが選ぶように作るにはこちら。