2011-01-17 2 views
15

Возможные Дубликаты:
Regex to match URL
regex to remove the webpage part of a url in rubyРегулярное выражение рубин, чтобы соответствовать URL-адрес

Я в поисках регулярного выражения для разбора всех URL-адресов в файле.
Я пробовал много регулярных выражений, которые я получил после googling, но это не удается в том или ином случае. моя идея - написать тот, который проверяет наличие http или https при зачатии, и он будет соответствовать всем, пока не увидит пустое место.
любые идеи?
ПРИМЕЧАНИЕ. Мне не нужно разбирать URL-адрес, но удалять все URL-адреса из файла или, по крайней мере, сделать его нечитаемым.

+0

P.S .: где вы видите Rails здесь? Я удаляю этот тег. Вы знаете разницу между Ruby и Rails? – Nakilon

ответ

18

Вы можете попробовать это:

/https?:\/\/[\S]+/ 

\S означает любой символ пробела.

(Rubular)

+2

Это действительно регулярное выражение для uri? Это просто поиск любой строки, которая начинается с http (s) ... которая не является uri. – Mohamad

51

Стандартная библиотека URI обеспечивает URI.regexp который является регулярным выражением для URL-адрес строки.

require 'uri' 
string.scan(URI.regexp) 

http://ruby-doc.org/stdlib/libdoc/uri/rdoc/index.html

+8

NB существует также метод URI.extract, который в основном разбирает все url из строки. Очень полезно. – rogerdpack

+0

неопределенная локальная переменная или метод 'string 'для main: Object (NameError) Возможно, вы имели в виду? String –

+0

URI.regexp похоже, соответствует строкам, которые на самом деле не являются действительными URL-адресами, такими как 'http: // x' или даже просто' http: '. –

Смежные вопросы