我需要一个从文本文档中提取URL的正则表达式

时间:2011-11-29 05:25:24

标签: php regex

我想要提取的网址都是www.domain.com格式。我想用一个简单的正则表达式从文本文档中提取它们。它只需要匹配www.domain.com,而不是其他网址变体。

与preg_match_all()一起使用的最简单的正则表达式是什么?

3 个答案:

答案 0 :(得分:2)

/w{3}\.\w{2,}\.\w{3}/

这将匹配www.任何包含两个以上字母dot + 3个字母的单词

使用连字符或大写字母匹配域:

/w{3}\.[\w\-]{2,}\.\w{3}/i

答案 1 :(得分:1)

我不会用PHP做很多事情,但正则表达式会是这样的:

w{3}.([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?

将返回以“www。”开头的所有域名。它将忽略标记的协议部分(例如http://

答案 2 :(得分:0)

preg_match_all('%((mailto\\:|(news|(ht|f)tp(s?))\\://){1}\\S+)%m', $subject, $result, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($result[0]); $i++) {
    // $result[0][$i];
}

如果你想轻松拉出部分网址,你也可以使用我写的课程https://github.com/homer6/altumo/blob/master/source/php/String/Url.php。请参阅同一目录中的单元测试以供使用。

如果您正在寻找一个好的程序来调整您的正则表达式模式,我强烈推荐regexbuddy

希望有帮助...