Ruby 有没有完美一点的方法来 parse url?URI.extract 遇到冒号就傻了

cqpx · 2012年01月10日 · 最后由 cqpx 回复于 2012年02月04日 · 5524 次阅读
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]

需要 登录 后方可回复, 如果你还没有账号请 注册新账号