2013-07-16 2 views
0

Ниже представлено мое регулярное выражение, которое соответствует url в тексте, который содержит регулярные текстовые, URL-адреса и идентификаторы электронной почты. Проблема здесь заключается в том, что она также захватывает часть домена из идентификаторов электронной почты. http://rubular.com/r/imoL2yQyrOНужно регулярное выражение, которое соответствует url

/(?:(?=[\s`!()\[\]{};:'".,<>?"'])|\b)((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9\-]+[.][a-z]{1,4}\/|[a-z0-9\-]+[.](?:[a-zA-Z]{2,4}))(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))*(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?"']|\b))/ 

Вот текст

Есть ли способ, чтобы отфильтровать весь электронный идентификатор

Мой текст

Neque Порро quisquam Эст Квай dolorem Ipsum Quia Dolor сидеть Амет , consectetur, adipisci vel http://someurl.com eque porro quisquam est qui dolorem ipsum quia dolor sit amet [email protected]

Матчи

http://someurl.com, abc.com

Он не должен соответствовать abc.com в [email protected]

+0

поможет ли это протокол HTTPS: \/\/[\ S] + из [здесь] (http://stackoverflow.com/questions/4716513/ruby-regular-expression-to-match-a- url? rq = 1) –

+1

Веб-URL? Я имею в виду, что, возможно, вы также хотите сопоставлять протоколы, такие как FTP, MailTo и т. Д. – Hauleth

+0

Да .. Я имею в виду веб-адреса .. Я тоже хочу захватить протокол. Regex также должен захватывать URL-адреса без протоколов –

ответ

0

вы можете оставить процесс каждый элемент ищет @ знак.

if(ExtractedURLfromREGEX.index('@') > -1) 
    ##do stuff with emails 
end 
Смежные вопросы