Perl:如何从多个HTML列出ID?

时间:2016-06-29 03:14:58

标签: regex list perl

我在子文件夹中有多个HTML文件。每个HTML页面都有多个页面ID,例如<a id="page_1"/><a id="page_2"/><a id="page_3"/>等等。我希望列出页面ID,其中包含page_3:index.htmlpage_4:chapter.htmlpage_5:content.html

等HTML页面

我该怎么做?

1 个答案:

答案 0 :(得分:2)

有些人认为最简单的方法是使用正则表达式:

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

这可能会以肮脏的方式快速找到答案。这对于快速的一次性任务来说是可以接受的。我正在使用extra-safe double diamond that v5.22 added

如果您需要更强大的功能,例如Mojo::DOM

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";
    }