【问题标题】:How to get domains out of HTML with regexp如何使用正则表达式从 HTML 中获取域
【发布时间】:2015-03-18 11:09:25
【问题描述】:

我有一个包含 10.000 多个域列表的网页,例如:

<a href="2015-mail.com.html">2015-mail.com</a>
<a href="mail.ru.html">mail.ru</a>
<a href="tut.by.html">tut.by</a>

所以我需要一个正则表达式来摆脱文本的超链接,前提是它是类似域的......

【问题讨论】:

  • 欢迎来到 Stack Overflow!看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在发布者已经尝试自己解决问题时才提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(控制台输出、堆栈跟踪、编译器错误 - 不管是什么适用的)。您提供的详细信息越多,您可能收到的答案就越多。
  • 为什么需要正则表达式? HTML 解析器有什么问题?

标签: php regex parsing


【解决方案1】:

如果您正在解析 HTML,那么您应该寻找的不是正则表达式。如果您只是将其作为纯文本获取,则使用 href="(([^.]+\.)+[^.]*)" 正则表达式,第一个捕获组将保存类似域的单词。

var re = /a.*href="(([^.]+\.)+[^.]*)"/; 
var str = '<a href="2015-mail.com.html">2015-mail.com</a>';
var m;

while ((m = re.exec(str)) != null) {
    if (m.index === re.lastIndex) {
        re.lastIndex++;
    }
    // Examine your matches (m[0] etc) here
}

Example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2014-10-08
    • 2011-03-27
    • 2010-12-21
    • 1970-01-01
    • 2011-10-12
    相关资源
    最近更新 更多