2016-06-29 6 views
-3

サブフォルダに複数のHTMLファイルがあります。各HTMLページには、<a id="page_1"/>,<a id="page_2"/>,<a id="page_3"/>などの複数のページIDがあります。 page_3:index.htmlpage_4:chapter.htmlpage_5:content.htmlPerl:複数のHTMLからidsをリストする方法は?

のようなHTMLページのようなページIDをリストしたいと思いますか?

use v5.22; 
while(<<>>) { 
    next unless /<a id="(.*?)"/; 
    say "$ARGV: $1"; 
    } 

汚いやり方で素早くあなたに答えを得る可能性があります:

答えて

2

一部の人々は、最も簡単な方法は、正規表現が含まれていると思います。これは、迅速な1回限りの作業では容認できるものです。私はextra-safe double diamond that v5.22 addedを使用しています。

あなたがそのようなMojo::DOMなど、より堅牢なもの、必要な場合:HTMLで

use v5.22; 
use Mojo::DOM; 

foreach my $file (@ARGV) { 
    my $data = do { local(@ARGV, $/) = $file; <<>> }; 
    my $dom = Mojo::DOM->new($data); 
    my @ids = $dom->find('a[id]')->map(attr => 'id')->each; 
    say "$ARGV: @ids"; 
    } 
関連する問題