Les variables tampons

Apparier des patterns est utile, mais il est encore plus utile de récupérer les sous-chaînes de caractère appariées. Ceci peut être fait à l'aide des variables tampons (memory ou pattern memory). On indique la création de variable tampons indexées en n, $n, en utilisant des parenthèses simple : () .

Exemple d'utilisation :

$_="AAA BBB";
m/^\s*(\w+)\W+(\w+)\s*$;

print "$1 et $2\n" ;

Les extensions

Perl5 supporte 5 extensions de sa syntaxe au niveau de la manipulation des expressions régulères.
 

Extension 

Description 

(?# TEXT) Permet d'insérer des commentaires dans une expression régulière. 
(?:PATTERN) Permet d'utiliser des parenthèses sans pour cela créer des variables tampons. 
(?=PATTERN) Permet d'isoler dans un pattern, lors d'un appariement, une partie qui ne 
retrouvera pas dans la variable spéciale $&
(?!PATTERN) Permet d'indiquer qu'un appariement ne se fait pas si PATTERN est apparié. 
(?sxi) Permet d'insérer les options dans un pattern et non pas à la fin d'une expression 
régulière. 

Exemples d'utilisation :

Voici un fichier : test.txt

Lundi patate 2 kg
Mardi choux 3 kg
Mercredi salade 5 kg
Jeudi patate 7 kg

Voici le script

while(<>){
                push(@vecteur, $&) if m/^\w+(?=\s+patate)/;
}

print("@vecteur\n");


suite-index