next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Operador de predicción negativo Sup: Algunas extensiones Ant: Paréntesis de agrupamiento Err: Si hallas una errata ...

Operador de predicción positivo

(?= ...) Operador de ``trailing'' o ``mirar-adelante'' positivo. Por ejemplo, /\w+(?=\t)/ solo casa una palabra si va seguida de un tabulador, pero el tabulador no formará parte de $&. Ejemplo:
> cat lookahead.pl
#!/usr/bin/perl

 $a = "bugs the rabbit";
 $b = "bugs the frog";
 if ($a =~ m{bugs(?= the cat| the rabbit)}i) { print "$a matches. \$& = $&\n"; }
 else { print "$a does not match\n"; }
 if ($b =~ m{bugs(?= the cat| the rabbit)}i) { print "$b matches. \$& = $&\n"; }
 else { print "$b does not match\n"; }
> lookahead.pl
bugs the rabbit matches. $& = bugs
bugs the frog does not match
>

Compare la siguiente salida:

> perl -e 'print "$ARGV\n\t$&\n" 
           if (m{<a href=\"(.*?)\">(?=(.*?)</a>.*?<a href)}i)' 
                                      -wn ~/public_html/*.html
/home/pl/public_html/plindex.html
        <a href="http://osr5doc.sco.com:1996/tools/CONTENTS.html">
/home/pl/public_html/plpracticas.html
        <a href="http://nereida.deioc.ull.es/html/java.html#html">
con la obtenida en la sección 4.15.


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Operador de predicción negativo Sup: Algunas extensiones Ant: Paréntesis de agrupamiento Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21