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:03] – 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 109: | Ligne 115: | ||
| ^ [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.1237079024.txt.gz · Dernière modification : de root
