私はPerlでスクリプトを作成しようとしており、正規表現を使用してfile.txt(Webサイトのリストが含まれています)というファイルからWebリンクを抽出しようとしています。リンクを印刷できません。これは私のコードです。ありがとうございます。
#!/usr/bin/perl
use strict;
use warnings;
my @web;
open my $input, '<', 'file.txt' or die $!;
#loop through file
while(my $row = <$input>){
chomp $row;
if($row =~ /http:(.+)/) {
push @web, $1;
}
}
for my $w (@web){
print "< $w\n";
}
答え1
HTMLを解析するために正規表現を使用しないでくださいこれは、特にPerlを使って正しいことをする方が簡単だからです。たとえば、
#!/usr/bin/env perl
use strict;
use warnings;
use HTML::LinkExtor;
my ( @web, $fn, $p );
sub cb {
my ( undef, %links ) = @_;
push @web, values %links;
}
$p = HTML::LinkExtor->new( \&cb );
while ( $fn = shift ) {
$p->parse_file($fn);
$p->eof;
}
print "$_\n" for (@web);