Documentation les expressions rationnelles en Perl

Les expressions rationnelles en Perl

DESCRIPTION
Cette page décrit la syntaxe des expressions rationnelles en Perl. Dans le titre Opérateurs d’expression rationnelle dans le manuel perlop, vous trouverez une présentation des opérateurs m//, s///, qr// et?? avec une description de l’usage des expressions rationnelles dans des opérations de reconnaissances assortie de nombreux exemples. (NdT: on emploie couramment le terme « expression régulière » car le terme anglais est « regular expression » qui s’abrège en « regexp ». Mais ne nous y trompons pas, en français, ce sont bien des « expressions rationnelles ».)
Les opérations de reconnaissances peuvent utiliser différents modificateurs. Les modificateurs qui concernent l’interprétation des expressions rationnelles elles-mêmes sont présentés ici. Pour les modificateurs qui modifient l’usage des expressions rationnelles fait par Perl, regarder le titre Opérateurs d’expression rationnelle dans le manuel perlop et le titre Les détails sordides de l’interprétation des chaînes dans le manuel perlop.
iReconnaissance de motif indépendamment de la casse (majuscules/minuscules). Si use locale est actif, la table des majuscules/minuscules est celle du locale courant. Voir le manuel perllocale.
Permet de traiter les chaînes multi-lignes. Les caractères « ˆ » et « $ » reconnaissent alors n’importe quel début ou fin de ligne plutôt qu’au début ou à la fin de la chaîne.
Permet de traiter une chaîne comme une seule ligne. Le caractère « . » reconnaît alors n’importe quel caractère, même une fin de ligne qui normalement n’est pas reconnue. Les modificateurs /s et /m passent outre le réglage de $*. C’est à dire que, quel que soit le contenu de $*, /s sans /m obligent « ˆ » à reconnaître uniquement le début de la chaîne et « $ » à reconnaître uniquement la fin de la chaîne (ou juste avant le retour à la ligne final). Combinés, par /ms, ils permettent à « . » de reconnaître n’importe quel caractère tandis que « ˆ » et « $ » sont reconnus alors respectivement juste après ou juste avant un retour à la ligne dans la chaîne.
Augmente la lisibilité de vos motifs en autorisant les espaces et les commentaires.
Expressions rationnelles
Les motifs utilisés par la mise en correspondance de motifs sont des expressions rationnelles telles que fournies dans les routines de la Version 8 des expressions rationnelles. En fait, les routines proviennent (de manière éloignée) de la réécriture gratuitement redistribuable des routines de la Version 8 par Henry Spencer. Voir le titre Version 8 des expressions rationnelles dans ce document pour de plus amples informations.
Notamment, les méta-caractères suivants gardent leur sens à la egrep:
\ Annule le meta-sens du meta-caractere qui suit ^ Reconnait le debut de la ligne . Reconnait n’importe quel caractere (sauf le caractere nouvelle ligne) $ Reconnait la fin de la ligne (ou juste avant le caractere nouvelle ligne final) | Alternative () Groupement [] Classe de caracteres
Par défaut, le caractère « ˆ » ne peut reconnaître que le début de la ligne et le caractère « $ » que la fin (ou juste avant le caractère nouvelle ligne de la fin) et Perl effectue certaines optimisations en supposant que la chaîne ne contient qu’une seule ligne. Les caractères nouvelle ligne inclus ne seront donc pas reconnus par « ˆ » ou « $ ». Il est malgré tout possible de traiter une chaîne multilignes afin que « ˆ » soit reconnu juste après n’importe quel caractère nouvelle ligne et « $ » juste avant. Pour ce faire, au prix d’un léger ralentissement, vous devez utiliser le modificateur /m dans l’opérateur de reconnaissance de motif. (Les anciens programmes obtenaient ce résultat en positionnant $* mais cette pratique est maintenant désapprouvée.) Pour faciliter les substitutions multi-lignes, le méta-caractère « . » ne reconnaît jamais un caractère nouvelle ligne à moins d’utiliser le modificateur /s qui demande à Perl de considérer la chaîne comme une seule ligne même si ce n’est pas le cas. Le modificateur /s passe outre le réglage de $* au cas où vous auriez quelques vieux codes qui le positionnerait dans un autre module. Les quantificateurs standards suivants sont reconnus:
* Reconnait 0 fois ou plus + Reconnait 1 fois ou plus ? Reconnait 0 ou 1 fois {n} Reconnait n fois exactement {n,} Reconnait au moins n fois {n,m} Reconnait au moins n fois mais pas plus de m fois..

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *