POSTメソッドを用いてExcite翻訳を行うRubyコード

しかし、未完です。

Webの巡回などにはWWW::Mechanizeという便利なライブラリがありますが、あえてnet/httpのPOSTメソッドを使う理由は、単にPOSTそのものと正規表現の学習をするためです。

今回は正規表現で試行錯誤。

Rubyソースコード

#!/usr/bin/ruby
require 'net/http'
require 'kconv'
before = "hello"
http = Net::HTTP.new('www.excite.co.jp')
response = http.post('/world/english', "before=#{before}&wb_lp=ENJA")
result = Kconv.tosjis(response.body)
result =~ /"after"[^>]*>(.*)/ism
puts $1

実行結果

こんにちは
<中略>

ここで、正規表現

/"after"[^>]*>(.*)/ism

の部分を

/"after"[^>]*>(.*)< \/textarea>/ism

に変更するとマッチしなくなってしまいました。
オプション指定のmで複数行にマッチするはずなんですが・・・うーん、何を見落としているのだろう。