Создайте массив подходящих ссылок - PullRequest
2 голосов
/ 21 июня 2011

Я использую Ruby on Rails 3.0.7, и я хотел бы «извлечь» из строки (или текст ) все ссылки, присутствующие в этом.

В настоящее время у меня есть следующее регулярное выражение *, чтобы сопоставить URL и адреса электронной почты:

/((\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

Я хотел бы получить массив (или некоторую другую структуру данных), заполненный ссылками, присутствующими в приведенной выше строке.

Как мне это сделать?


* Кстати : достаточно ли регулярное выражение?

1 Ответ

0 голосов
/ 21 июня 2011

Может быть, что-то вроде этого:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...