Извлечение URL-адресов из текста с использованием Ruby при обработке совпавших паренов - PullRequest
1 голос
/ 08 июня 2010

URI.extract заявляет, что делает это, но не обрабатывает подходящих паренов:

>> URI.extract("text here (http://foo.example.org/bla) and here")
=> ["http://foo.example.org/bla)"]

Каков наилучший способ извлечения URL-адресов из текста без разбивки URL-адресов в скобках (которые любят использовать пользователи)?

Ответы [ 3 ]

0 голосов
/ 08 февраля 2013

Перед использованием

>> URI.extract("text here (http://foo.example.org/bla) and here")
=> ["http://foo.example.org/bla)"]

Вы должны добавить это

require 'uri'
0 голосов
/ 08 февраля 2013

Вы можете использовать это регулярное выражение для извлечения URL-адресов из строки

"some thing http://abcd.com/ and http://google.com are great".scan(/(?:http|https):\/\/[a-z0-9]+(?:[\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(?:(?::[0-9]{1,5})?\/[^\s]*)?/ix)
0 голосов
/ 08 июня 2010

Если URL-адреса всегда связаны круглыми скобками, лучшим решением может быть регулярное выражение.

text = "text here (http://foo.example.org/bla) and here and here is (http://yet.another.url/with/parens) and some more text"
text.scan /\(([^\)]*)\)/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...