构建一系列匹配链接

时间:2011-06-20 22:27:34

标签: ruby-on-rails ruby regex arrays string

我正在使用Ruby on Rails 3.0.7,我想从字符串(或 text )中“提取”所有链接。

此时我有以下正则表达式*以匹配网址和电子邮件地址:

/((\S+)?(@|mailto\:)|((ht|f)tp(s?)\:\/\/)|([www]))\S+/

如果我有以下字符串

text here http://www.sitename.com and text here www.sitename.com and text here email@sitename.com and text here

我想获得一个数组(或其他一些数据结构)填充上面字符串中的链接。

我该怎么办?


* BTW :正则表达式“足够好”吗?

1 个答案:

答案 0 :(得分:0)

也许是这样的:

text = 'text here http://www.sitename.com and text here www.sitename.com and text here email@sitename.com and text here'
links = []
text.split.each do |word|
  links << word if word.match(/(((\S+)?)((@|mailto\:)|(((ht|f)tp(s?))\:\/\/)|([www]))\S+)/)
end
puts links