< < E-NEF > >
Prog. Perl | Art Roman | Voyager | Cartes ()
                  dragon                     e-nef                 Plan du Site
Contact
my.e-nef v0.1
  • Kernel Linux stable: 2.6
  • Perl: 5.8
  • Apache: 2.0
  • mod_perl: 2.0
  • postgres: 8.0


Rubriques


Recherche sur le Site





Bookmarks


Recommandation de Lecture


Questions ?
Dites nous ce que vous
avez pensé de cette page

 Excellent
 Vaut le coup de le lire
 Sans intérêt

 Pas assez technique
 Juste comme il faut
 Trop technique



Cours de Perl
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



Publicité

© Copyright 1998-2010 Emmanuel PIERRE. Libre reproduction sous Licence LLDDv1.
Pour tout commentaire, webmaster@e-nef.com
Dernière MaJ

Valid XHTML 1.0!

No Patents/