- Expressions régulières

Comme la commande "egrep" d'Unix, Perl offre la même puissance de manipulation
d'expressions régulières.
On utilise l'opérateur conditionnel =~ qui signifie "ressemble à".
Syntaxe: chaîne =~/expression/
Exemple: if ($nom =~ /^[Dd]upon/) {print "OK !";}
=> Ok si nom est 'dupont', 'dupond', 'Dupont-Lassoeur'
^ signifie « commence par »
On peut rajouter « i » derrière l'expression pour signifier qu'on ne différencie pas les majuscules
des minuscules.
Le contraire de l'opérateur =~ est !~ (ne ressemble pas à ...)
if ($nom !~ /^dupon/i) {print "Non...";}
Rappel

Une expression régulière (appelée aussi « regexp ») est un motifde recherche, constitué
de :
-
Un caractère
-
Un ensemble de caractères :
- [a-z] tout caractère alphabétique
- [aeiouy] toute voyelle
- .tout caractère sauf fin de ligne
- [a-zA-Z0-9] tout caractère alphanumérique
- le caractère ^ au début d'un ensemble signifie « tout sauf »
([^0-9] : tout caractère non numérique)
- Un caractère spécial: \n, « retour-chariot», \t : tabulation, ^ : début de ligne, $ : fin
de ligne
- \w signifie « un mot », \s signifie « un espace », \W « tout sauf un mot », \S
« tout sauf un espace »
Quelques opérateurs : « ? » 0 ou 1 fois, « * » : 0 ou n fois, « + » : 1 ou n fois, « | » : ou
(inclusif)
Il y a même l'opérateur {n,m}qui signifie de nà mfois.
Remarque : Si l'on veut qu'un carcatère spécial apparaisse tel quel, il faut le précéder d'un « anti-
slash » (\), les caractères spéciaux sont :
« ^ | ( ) [ ] { } \ / $ + * ? . »
ex: if (/\(.*\)/) {print;}
qui affiche contenant des parenthèses

Attention :
le caractère spécial « ^ » a deux significations différentes :
1. dans un ensemble il signifie « tout sauf »
2. en dehors il signifie « commence par »
|
 |