【发布时间】:2013-07-16 07:19:55
【问题描述】:
下面是我的正则表达式,它匹配包含常规文本、url 和电子邮件 ID 的文本中的 url。这里的问题是,它还从电子邮件 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))/
这是正文
有没有办法过滤掉整个email id
我的文字
Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci vel http://someurl.com eque porro quisquam est qui dolorem ipsum quia dolor sit amet xyz@abc.com
匹配
http://someurl.com,abc.com
不应与 xyz@abc.com 中的 abc.com 匹配
【问题讨论】:
-
这对来自here的 https?:\/\/[\S]+ 有帮助
-
网址?我的意思是,也许您还想匹配 FTP、MailTo 等协议。
-
是的..我的意思是网址..我也想捕获协议..正则表达式也应该捕获没有协议的网址
-
您的 Rubular 链接出现错误,“字符类过早结束。”
标签: ruby-on-rails ruby regex