Array como patron en expresion regular
Publicado: 2020-11-11 15:06 @670
Hola, buenas a tod@s.
Pongo el código y me explico:
Este es el texto que procesa el script.
y este parte del script
La intención es que imprima : Usadato Usa
Pero lo que imprime es: UsaSpain
El caso es que al encontrar la primera coincidencia, entre en el if y recoge USA y aumenta el contador $i, pero, y aunque con un depurador, me dice que el próximo patrón es el que busco, no hace caso y recoge de nuevo el primer patrón. ¿En que me estoy equivocando?
Buenas tardes y saludos LeoSevilla.
Pongo el código y me explico:
Este es el texto que procesa el script.
Using text Syntax Highlighting
<a class="pais" href="">USA</a></td>
<td style="font-weight: bold; text-align:right;background-color:#FFEEAA;">dato USA</td>
<a class="pais" href="">Spain</a></td>
<td style="font-weight: bold; text-align:right;background-color:#FFEEAA;">dato Spain</td>
<td style="font-weight: bold; text-align:right;background-color:#FFEEAA;">dato USA</td>
<a class="pais" href="">Spain</a></td>
<td style="font-weight: bold; text-align:right;background-color:#FFEEAA;">dato Spain</td>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
y este parte del script
Using perl Syntax Highlighting
- my $i = 0;
- my @total = ();
- @regexp = (".*pais.*>(.*?)<\/a",".*FFEEAA.*>(.*?)<\/t");
- procesar ($texto, \@regexp);
- sub procesar{
- my ($content,$regexp) = @_;
- my @lineas = split "\n" , $content;
- my @reg = @{$regexp};
- foreach (@lineas){
- if($_ =~ m{$regexp->[$i]}o){
- $total[$i] = $1;
- $i++;
- }
- if(scalar(@reg)==$i){last;}
- }
- print @total;
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
La intención es que imprima : Usadato Usa
Pero lo que imprime es: UsaSpain
El caso es que al encontrar la primera coincidencia, entre en el if y recoge USA y aumenta el contador $i, pero, y aunque con un depurador, me dice que el próximo patrón es el que busco, no hace caso y recoge de nuevo el primer patrón. ¿En que me estoy equivocando?
Buenas tardes y saludos LeoSevilla.