こんにちは、高石です。

From: keiichi matsunaga <ma2 / lifemedia.co.jp>
Subject: [ruby-list:36072] Re: 日本語に混じった URL を抜き出したい

>  ちょっと本筋とははずれますが,自由入力されたメッセージ中から URL を
> 抜き出そうとすると「http://」が無いケースが往々にして存在します。その
> 場合のうまい抽出方法となると,何かあるんでしょうかね? 単なる英単語と
> 誤認しないように「www」とかを調べて確度をあげるのかなあ。 

うまい抽出方法といえるかどうかわかりませんが、昔こんなの書い
てました。

REG1 = '[a-zA-Z0-9_-]'
REG2 = '[a-zA-Z0-9_~!@\#$%&.,/=?:;+-]'
REG_URL = %r<\b(?:\w+://)?#{REG1}+\.#{REG1}+\.#{REG1}+#{REG2}*>o

str.scan(REG_URL) { |url| puts url }

# 当時RFCとか調べた記憶がないので、結構いいかげんかも:-P
/--------------------------------------------------------/
  高石 勇人 < rio-t / presen.to >
  PGP Key(RSA): http://rio-t.presen.to/pgp/mykey.asc
         (DSS): http://rio-t.presen.to/pgp/mykey-dss.asc
/--------------------------------------------------------/