【问题标题】:detect domains from text with regular expression使用正则表达式从文本中检测域
【发布时间】:2014-04-02 11:10:56
【问题描述】:

我一直在通过 preg_match 从文本中找到 url 与此模式 /(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/

检测域而不是 url 的任何进一步解决方案?可能是这样的顶级域列表: .asia .biz .cat .com .net .edu .gov .info .com.eu .com.au

//编辑

例如我有一个这样的段落:

你好,世界。 https://stackoverflow.com/posts/22112284/edit

我想在该文本中找到这个域 stackoverflow.com

【问题讨论】:

标签: regex url text dns find


【解决方案1】:

如果您只想要域名,那么就停在斜线处。事实上,你已经有了它,只是缩短它。我还在末尾添加了另一个位置,因为那里有一些奇怪的顶级域(例如.info.mobi

(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}

【讨论】:

  • 很抱歉我的问题不太清楚。我刚刚编辑了它。你的建议我也试过了,还是不行。
  • 您可以从这个正则表达式开始,然后过滤掉协议部分。只是一个想法。
  • 如果文本不包含那些前缀 HTTP:// 或 HTTP://WWW 它根本不起作用。所以我正在考虑通过那些顶级域来检测域。它们可能列在一个数组中。但我找不到让它与 preg_match 一起使用的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
相关资源
最近更新 更多