1

ファイル内の文字列を検索しようとしています。この文字列は、ファイル内で複数回発生する可能性があります。<P>見つかった場合は、 and</P>タグ内でその下の行を抽出する必要があります。

これまでのところ、次のコードがあります。現在の行のみが印刷されます。<P>タグ内の次の行を印刷するにはどうすればよい </P>ですか?

#!/usr/bin/perl
use strict;
my $find = "Primary objectives";

open(FILE,"obj_doc.html") or die "cannot open file ";
my @line = <FILE>;
for (@line) {
    if ($_ =~/$find/) {
        print "Current line is: $_\n";
        # get the next line
        # if next line begins with <P> and ends with </P> extract it. else ignore it
        my $nextline = <FILE>;
        printf "$nextline";

        if ($nextline =~ /^<P>:+<\/P>$/) {
            print $nextline;
        }
    }
}


close(FILE);

よろしくお願いします。- シマック

4

1 に答える 1

0

フリップフロップオペレーターは、汚い仕事の友達です。

perl -ne'print if/<P>/../<\/P>/'

とにかく、真面目な作業には適切なパーサーを使用してください!

于 2013-06-26T08:48:20.977 に答える