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


I need a regex that will pull a URL from a text document

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

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

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

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

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

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

我不怎么使用PHP,但正则表达式应该是:

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

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

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如果你想轻松地提取部分url。有关用法,请参阅同一目录中的单元测试。

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

希望能有所帮助。。。