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

发布于 2024-08-31 21:45:24 字数 431 浏览 2 评论 0原文

输入:我们得到一些纯文本作为输入字符串,并且必须使用 {url> 突出显示其中的所有 URL。

一段时间以来,我一直使用取自 http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/,我修改了几次,但它是为另一个问题而构建的 - 检查是否整个输入字符串是 URL 或不是。

那么,在此类问题中您使用什么正则表达式?

UPD:如果答案与 php 相关,那就太好了:-[

The input: we get some plain text as input string and we have to highlighight all URLs there with <a href={url}>{url></a>.

For some time I've used regex taken from http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/, which I modified several times, but it's built for another issue - to check whether the whole input string is an URL or no.

So, what regex do you use in such issues?

UPD: it would be nice if answers were related to php :-[

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

望喜 2024-09-07 21:45:24

看一下 CPAN 上提供的几个模块:

,后者更宽容一些。正则表达式可在源代码中找到(例如后者的)。

例如:

#! /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!

Take a look at a couple of modules available on CPAN:

where the latter is a little more forgiving. The regular expressions are available in the source code (the latter's, for example).

For example:

#! /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;

Output:

<a href="http://stackoverflow.com/users/251311/zerkms">http://stackoverflow.com/users/251311/zerkms</a> is swell!
水水月牙 2024-09-07 21:45:24

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

http://search.cpan.org/搜索?query=Regexp%3A%3ACommon%3A%3AURI&mode=模块

For Perl, I usually use one of the modules defining common regex, Regexp::Common::URI::*. You might find a good regexp for you in the sources of those modules.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文