next up previous index
suivant: Valeurs de retour monter: Utilisation : recherche précédent: Utilisation : recherche   Index

Syntaxe

Pour cela, on utilise la fonction m/REGEXP/, qui s'applique par défaut à la variable $_. Si on désire l'appliquer à une autre variable, la syntaxe est la suivante:

if ($var =~ m/REGEXP/) { ... }

REGEXP est l'expression régulière dont on cherche à savoir si elle correspond à la variable $var. On peut faire suivre cette fonction de paramètres qui modifient le comportement de la fonction de matching. Ces paramètres sont formés d'au moins un caractère parmi g, i, s, m, o, x. Voici le détail de leurs actions :

g recherche globale (recherche toutes les occurences, s'il y en a plusieurs dans la chaîne traitée)
i ne pas tenir compte de la casse des caractères (case-insensitive)
s traiter la chaîne comme une ligne simple (défaut)
m traiter la chaîne comme une ligne multiple
o ne compiler l'expression qu'une seule fois
x utiliser les expressions régulières étendues

Pour tester si la variable $var contient la chaîne foo mais sans faire de distinction majuscules/minuscules, on écrira :

if ($var =~ m/foo/i) { ... }
Le premier m de l'expression m/REGEXP/ peut être omis si le délimiteur de l'expression est un / (slash, ou barre oblique). L'utilisation du m permet d'utiliser n'importe quel caractère comme délimiteur, ce qui évite, lorsqu'il s'agit de construire une expression contenant des /, de précéder chaque / d'un $\backslash$. Par exemple :

if ($var =~ m#^/etc#) { ... }
Les expressions régulières peuvent contenir des variables qui seront interpolées à chaque appel à l'expression. Ce comportement est utile, et intuitif, dans certaines situations mais est pénalisant du point de vue de la rapidité d'exécution. Si l'on est certain que la variable ne changera pas au cours du script, on peut ajouter le modificateur o. Mais attention, si on oublie que l'on a mis ce modificateur et que l'on modifie quand même la variable, ce changement ne sera pas pris en compte dans l'expression régulière.


next up previous index
suivant: Valeurs de retour monter: Utilisation : recherche précédent: Utilisation : recherche   Index
Olivier Aubert
1999-06-01