【问题标题】:Need regular expression that matches url [duplicate]需要匹配 url 的正则表达式 [重复]
【发布时间】: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


【解决方案1】:

您可以对每个条目进行后期处理,寻找@ 符号。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多