候補の駅を出力したあと、ユーザに選んでもらうようにしたい。 キーボード操作を簡単にするため、候補の数字を選ぶように作る。 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 番目の候補が格納されている。 出力された候補の中からユーザが選ぶように作るにはこちら。