用于URL匹配的正则表达式(PCRE)

时间:2010-05-12 12:05:54

标签: php regex url pcre

输入:我们将一些纯文本作为输入字符串,我们必须使用<a href={url}>{url></a>高亮显示所有网址。

有一段时间我使用了来自http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/的正则表达式,我修改了几次,但它是针对另一个问题构建的 - 检查整个输入字符串是否为URL。

那么,你在这些问题上使用什么正则表达式?

UPD :如果答案与php相关会很好: - [

2 个答案:

答案 0 :(得分:1)

看一下CPAN上的几个模块:

后者更宽容一点。正则表达式在源代码中可用(例如the latter's)。

例如:

#! /usr/bin/perl

use warnings;
use strict;

use URI::Find::Schemeless;

my $text = "http://stackoverflow.com/users/251311/zerkms is swell!\n";

URI::Find::Schemeless
  ->new(sub { qq[<a href="$_[0]">$_[0]</a>] })
  ->find(\$text);

print $text;

输出:

<a href="http://stackoverflow.com/users/251311/zerkms">http://stackoverflow.com/users/251311/zerkms</a> is swell!

答案 1 :(得分:0)

对于Perl,我通常使用一个定义公共正则表达式Regexp::Common::URI::*的模块。您可以在这些模块的源代码中找到适合您的正则表达式。

http://search.cpan.org/search?query=Regexp%3A%3ACommon%3A%3AURI&mode=module