1

我正在尝试解析推文的文本文件并删除 URL 并将它们放入 urls.txt 文件中。目前,我有这个正则表达式:

($line =~ /((?:https?|ftp|telnet|gopher|file|imap):\/\/[\w\-\.\~\!\*\'\(\)\;\:\@\&\=\+\$\,\/\\\?\%\#\[\]]*)/)

但是由于我想进一步构建它,即使现在它也很笨拙,我想知道是否有任何方法可以使用数组或哈希之类的东西检查有效的 URL 字符(部分)。[\w\-\.\~\!\*\'\(\)\;\:\@\&\=\+\$\,\/\\\?\%\#\[\]]*或者任何不会让它变得如此不必要的冗长的东西。

如果出于任何原因需要,可以提供我的其余代码。

4

1 回答 1

2

如果您想验证 URL,为什么不使用 CPAN 中的模块为您完成繁重的工作。

my $uri = URI->new("http://www.perl.com");

在此处查看URI模块的详细信息。

根据 Sobrique 的建议,您还可以使用:

 use Data::Validate::URI qw(is_uri);

 if (is_uri("http://www.perl.com")) {
     ...
 }

在此处查看Data::Validate::URI模块的详细信息。

于 2014-10-30T16:52:49.253 回答