ruby-1.9.3-p0 :007 > URI.extract("haha http://google.com, Active::Record, jquery.js:") => ["http://google.com", "Active::Record,", "jquery.js:"]
自己写正则呢,一个是本来正则就不太熟悉,二个是怕考虑不全面,ruby-china 解析 url 的办法也有问题。
请问有没有完美一点的 url 解析办法?
谢谢
我们的项目中也遇到这个问题,我们的方法是参照 Twitter 的做法,Twitter 有个开源项目叫做 twitter-text-rb https://github.com/twitter/twitter-text-rb
里面有个 autolink 方法,考虑的比较全面,也附有测试用例,你试试看提取这个 autolink 的实现是否符合你的需求:https://github.com/twitter/twitter-text-rb/blob/master/lib/autolink.rb
#1 楼 @lgn21st 多谢大哥指点,找到了满意的方案 具体来讲就是用https://github.com/twitter/twitter-text-rb/blob/master/lib/regex.rb里面的Twitter::Regex::REGEXEN[:valid_url]
https://github.com/twitter/twitter-text-rb/blob/master/lib/regex.rb
Twitter::Regex::REGEXEN[:valid_url]