Я использовал следующий код для извлечения ссылок, которые заканчиваются определенным расширением
, например * .htm, * .html, * .gif, * .jpeg.
Примечание. В этом сценарии сначала пишется расширение * .html, а затем * .htm, поскольку оба имеют общий «htm». Так что изменения такого рода следует делать осторожно.
Ввод: Имя файла со ссылками и Имя выходного файла, в котором будут сохранены результаты.
Вывод: Будет сохранен в выходном файле.
Код идет здесь:
use strict;
use warnings;
if ( $#ARGV != 1 ) {
print
"Incorrect number of arguments.\nArguments: Text_LinkFile, Output_File\n";
die $!;
}
open FILE_LINKS, $ARGV[0] or die $!;
open FILE_RESULT, ">$ARGV[1]" or die $!;
my @Links;
foreach (<FILE_LINKS>) {
my @tempArray;
my (@Matches) =( $_ =~ m/((https?|ftp):\/\/[^\s]+\.(html?|gif|jpe?g))/g );
for ( my $i = 0 ; $i < $#Matches ; $i += 3 ) {
push( @Links, $Matches[$i] );
}
}
print FILE_RESULT join( "\n", @Links );
Вывод вашей строки здесь:
http://homepage.com/woot.gif
http://shomepage.com/woot.gif