1
use strict;
use warnings;
use XML::Twig;
my @discard = qw/abc de bond/;
my $filter = join '|', @discard;
$filter = qr/\b(?:$filter)\b/;
my $twig = XML::Twig->new;
$twig->parse(\*DATA);
for my $line ($twig->findnodes('//line')) {
$line->delete if $line->text =~ $filter;
}
$twig->print;
__DATA__
<data>
<line> sdfe abc adsfefsdf </line>
<line> abcsdffedcfsdf sdf </line>
<line> sdfe </line>
<line> abc </line>
<line> sdabc sfefsdf </line>
<line>
<id> bond </id>
<dest> UK </dest>
adsfefsdf
</line>
<line> fhgh kk jj hjsda </line>
<line> abc </line>
..
..
..
</data>
上記プログラムは、以下の結果生成後読み:パターンマッチ - 先読みと
<data><line> abcsdffedcfsdf sdf </line><line> sdfe </line><line> sdabc sfefsdf </line><line> fhgh kk jj hjsda </line>
..
..
..
</data>
ザは、以下が所望の出力である:
<data>
<line> sdfe </line>
<line> fhgh kk jj hjsda </line>
..
..
..
</data>
所望の出力のために考慮されるための条件を:
一致、事前一致、事後一致、配列内に入力された値を入力し、それらが存在する入力データからタグを削除する
例: 一致---- abc
事前一致---- sdabc
POSTMATCH ----abcsdffedcfsdf上記のように**マッチ、PREMATCHとPOSTMATCHは私の用語であり、出力の形式は、入力データ
と同様の方法であることを確認してください。
絶対に!ありがとうございました。 –