!旅程 出張の申請をするときに旅程を書かなければいけないのだけど 地味に面倒.... というわけで駅前探検倶楽部のテキストデータから旅程出せるような スクリプトを書いてみた. {{ref format.rb}} path = [] goal = "" data = $stdin.read data.split("\n").each{ |line| if /^●(.+)/ =~ line then path << $1 elsif /^○(.+)/ =~ line then path << $1 elsif /^↓(.+)/ =~ line then path << $1 elsif /^■(.+)/ =~ line then goal = $1 elsif /\d\d:\d\d/ =~ line then elsif / +([^\(].+)\(.+\)\[.+\]/ =~ line then path << $1 elsif /徒歩/ =~ line then path << "徒歩" elsif /バス/ =~ line then path << "バス" elsif / +(\D+)(\d+)便/ =~ line then path << $1 end } flag = false im = "" ret_path = path.reverse path.each{|elem| print im print "(" if flag print elem print ")" if flag im = " → " flag = !flag } print " → " print goal flag = true ret_path.each{|elem| print im print "(" if flag print elem print ")" if flag im = " → " flag = !flag } puts たとえば,調布→湯河原で検索した結果 ●調布 |  15:18発 |    京王線(準特急)[新宿行]17分 | △15:35着 ○新宿 |  15:42発 |    JR山手線(内回り)[渋谷方面行]19分 |  16:01着 ○品川 |  16:10発 |    ひかり479号(自由席)[岡山行]32分 |  16:42着 ○熱海 |  16:51発 |    JR東海道本線(快速アクティー)[東京行]5分 |  16:56着 ■湯河原 を ruby format.rb のあと標準入力から入力すると, 調布 → (京王線) → 新宿 → (JR山手線) → 品川 → (ひかり479号) → 熱海 → (JR東海道本線) → 湯河原 → (JR東海道本線) → 熱海 → (ひかり479号) → 品川 → (JR山手線) → 新宿 → (京王線) → 調布 とか出力される.