2013-07-16 36 views
0

下面是我的正則表達式,它與包含常規文本,網址和電子郵件ID的文本中的網址匹配。這裏的問題是,它也從電子郵件ID中挑選域名部分。 http://rubular.com/r/imoL2yQyrO需要與網址匹配的正則表達式

/(?:(?=[\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))/ 

這裏是文字

有沒有過濾掉整個電子郵件ID

我的文字

預期值,也普羅quisquam EST魁dolorem存有quia悲坐阿梅德方式, 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

網址?我的意思是,也許你也想匹配像FTP,MailTo等協議 – Hauleth

+0

是的..我的意思是網址..我也希望捕獲協議..正則表達式還應該捕獲沒有協議的網址 –

回答

0

您可以發佈過程中的每個條目尋找一個@標誌。

if(ExtractedURLfromREGEX.index('@') > -1) 
    ##do stuff with emails 
end