如何从Perl中的纯文本中提取URL?

Cri*_*ian 3 url perl text extract

我见过这样的帖子,但不完全是我想做的.

如何提取和删除URL链接,然后从纯文本中删除它们.

例:

"Hello!!, I love http://www.google.es".
Run Code Online (Sandbox Code Playgroud)

我想提取"http://www.google.es",将其保存在变量上,然后将其从我的文本中删除.

最后,文本必须是这样的:

"Hello!!, I love".
Run Code Online (Sandbox Code Playgroud)

URL通常是文本的最后一个"单词",但并非总是如此.

bri*_*foy 8

也许你想要URI :: Find,它可以在任意文本中找到URI.您为其提供的代码引用的返回值会生成URL的替换字符串,因此如果您只想删除URI,则可以返回空字符串:

use URI::Find;

my $string = do { local $/; <DATA> };

my $finder = URI::Find->new( sub { '' } );
$finder->find(\$string );

print $string;

__END__
This has a mailto:joe@example.com
Go to http://www.google.com
Pay at https://paypal.com
From ftp://ftp.cpan.org download a file
Run Code Online (Sandbox Code Playgroud)