perl:expressions_regulieres
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
perl:expressions_regulieres [2009/03/15 01:07] – root | perl:expressions_regulieres [2013/03/13 11:09] (Version actuelle) – root | ||
---|---|---|---|
Ligne 19: | Ligne 19: | ||
En perl, une expression régulière est en général délimitée par le caractère **/**. L' | En perl, une expression régulière est en général délimitée par le caractère **/**. L' | ||
+ | <code perl> | ||
my $text = "Le chameau dans le desert"; | my $text = "Le chameau dans le desert"; | ||
print " | print " | ||
+ | </ | ||
Cependant si l'on spécifie explicitement le préfixe **m** (// | Cependant si l'on spécifie explicitement le préfixe **m** (// | ||
+ | <code perl> | ||
my $path = "/ | my $path = "/ | ||
print "un programme" | print "un programme" | ||
+ | </ | ||
Par défaut, le résultat d'une opération de // | Par défaut, le résultat d'une opération de // | ||
+ | <code perl> | ||
my $text = "un chasseur sachant chasser"; | my $text = "un chasseur sachant chasser"; | ||
my @cha = $text =~ /cha/g; | my @cha = $text =~ /cha/g; | ||
print scalar(@cha)." | print scalar(@cha)." | ||
+ | </ | ||
Enfin il est possible d' | Enfin il est possible d' | ||
+ | <code perl> | ||
my $text = "Le chameau dans le desert"; | my $text = "Le chameau dans le desert"; | ||
print "Pas de chameau à l' | print "Pas de chameau à l' | ||
+ | </ | ||
===== Substitution ===== | ===== Substitution ===== | ||
L' | L' | ||
+ | <code perl> | ||
my $text = "un chasseur sachant chasser"; | my $text = "un chasseur sachant chasser"; | ||
$text =~ s/cha/cho/; # text devient 'un chosseur sachant chasser' | $text =~ s/cha/cho/; # text devient 'un chosseur sachant chasser' | ||
$text =~ s/ | $text =~ s/ | ||
+ | </ | ||
On retrouve le même suffixe optionnel pour ne traiter que la première occurence (défaut) ou toutes les occurences (suffixe **g**).Une deuxième partie apparaît, qui spécifie le nouveau contenu lors des subtitutions: | On retrouve le même suffixe optionnel pour ne traiter que la première occurence (défaut) ou toutes les occurences (suffixe **g**).Une deuxième partie apparaît, qui spécifie le nouveau contenu lors des subtitutions: | ||
Le résultat de l' | Le résultat de l' | ||
+ | <code perl> | ||
my $text = "un chasseur sachant chasser"; | my $text = "un chasseur sachant chasser"; | ||
print ($text =~ s/ | print ($text =~ s/ | ||
+ | </ | ||
===== Extraction ===== | ===== Extraction ===== | ||
Hormis le contexte liste du mode // | Hormis le contexte liste du mode // | ||
+ | <code perl> | ||
my @a = "Perl c'est bien" =~ /(.*) c'est (.*)/; # @a = (" | my @a = "Perl c'est bien" =~ /(.*) c'est (.*)/; # @a = (" | ||
# $1 = " | # $1 = " | ||
# $2 = " | # $2 = " | ||
+ | </ | ||
La forme avec les variables **$1**, **$2**, etc. est la plus couramment utilisée. | La forme avec les variables **$1**, **$2**, etc. est la plus couramment utilisée. | ||
- | |||
====== 3. Caractères spéciaux ====== | ====== 3. Caractères spéciaux ====== | ||
Ligne 106: | Ligne 112: | ||
Si l'on veut rechercher un motif ne correspondant pas à une simple chaîne, mais un agencement quelconques de caractères prédéfinis, | Si l'on veut rechercher un motif ne correspondant pas à une simple chaîne, mais un agencement quelconques de caractères prédéfinis, | ||
- | --- // | + | |
^ [A-Z] ^ Recherche n' | ^ [A-Z] ^ Recherche n' | ||
| [A-Za-z] | Recherche n' | | [A-Za-z] | Recherche n' | ||
- | | [!^0-9] | Recherche n' | + | | [!%%^%%0-9] | Recherche n' |
Exemples: | Exemples: | ||
Ligne 125: | Ligne 131: | ||
On peut également vérifier que le motif recherché est positionné à un endroit précis dans la chaîne de caractère, plus précisément au début où à la fin : | On peut également vérifier que le motif recherché est positionné à un endroit précis dans la chaîne de caractère, plus précisément au début où à la fin : | ||
- | ^ /^From (.*)/ ^ Récupère dans $1 ce qui suit le "From " seulement si la ligne commence par "From "^ | + | ^ %%/^From (.*)/%% ^ Récupère dans $1 ce qui suit le "From " seulement si la ligne commence par "From "^ |
- | | s/!+$/./ | Remplace une série de " | + | | %%s/!+$/./%% | Remplace une série de " |
- | | /^$/ | Recherche les lignes vides| | + | | %%/^$/%% | Recherche les lignes vides| |
//A suivre...// | //A suivre...// | ||
- |
perl/expressions_regulieres.1237079271.txt.gz · Dernière modification : 2009/03/15 01:07 de root