如何使用正则表达式从HTML中获取域名

时间:2015-03-18 11:09:25

标签: php regex parsing

我有一个包含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>

所以我需要一个正则表达式,只有当它是类似域的时才能脱离文本的超链接...

1 个答案:

答案 0 :(得分:0)

如果您正在解析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