in reply to Re: Array Exact Position Filter
in thread Array Exact Position Filter

Now that we know that the exact position of the key field does in fact change, that restriction is removed and all you need to do is find a suitably unique regex to capture it in the first place. Looks to me from

<DI:"def.def"><RD:Item><PS:Item>Campo_Ementa ###HERE GOES THE TEXT THA +T I DONT WANT TO VERIFY[a-zA-Zetcetc]*###<HR>Campo_Identificacao(Recu +rso Inominado nº <b>0702995-42.2017.8.01.0002</b>, 1ª Turma Recursal +dos Juizados Especiais/AC, Rel. Maria Rosinete dos Reis Silva. j. 11. +07.2018 , Publ. 20.07.<FD:AnoJulg>2018</FD:AnoJulg>).<HR><PS:Identifi +cacao>

that it exists between "nº " and ", " and if that's the same for all of them then it is a simple switch:

use strict; use warnings; use utf8; use Test::More tests => 1; my @in = split (/\n/, <<EOT); aaa nº 1234, xyz bbb nº 1234, yzx ccc nº 1234, yxz ddd nº 2345, zyx EOT my @want = split (/\n/, <<EOT); aaa nº 1234, xyz ddd nº 2345, zyx EOT my $number; my %seen = ( '' => 1 ); my @out; for my $line (@in) { if ($line =~ /nº ([\d]*),/) { $number = $1; } else { $number = ''; } push @out, $line unless $seen{$number}++; } is_deeply (\@out, \@want);

If that logic doesn't match your requirements, simply change the regex until it does. Obviously here, I'm just matching integers for the numbers and yours is more complex but the principle should still fit.