Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Expressions régulières
  3. Équivalences d'expressions régulières
Extrait - Expressions régulières Syntaxe et mise en œuvre (avec exercices et corrigés) (2e édition)
Extraits du livre
Expressions régulières Syntaxe et mise en œuvre (avec exercices et corrigés) (2e édition) Revenir à la page d'achat du livre

Équivalences d'expressions régulières

Véritables équivalences d’expressions 

Il existe certaines équivalences entre les différents types d’expressions régulières.

On utilisera les acronymes suivants pour alléger la suite de ce paragraphe :

  • ERb : Expression Régulière basique,

  • ERe : Expression Régulière étendue.

On peut citer certaines équivalences, parmi lesquelles :

  • [a-z][a-z]* en ERb s’écrira [a-z]+ en ERe.

  • ..* en ERb s’écrira .+ en ERe.

  • [0-9] en ERb et ERe s’écrira [[:digit:]] avec les classes de caractères POSIX.

  • [0-9a-fA-F] en ERb et ERe et [[:xdigit]] avec les classes de caractères POSIX. 

  • (expr)(expr)(expr)(expr) désigne une expression en ERb s’écrira (expr){3} en ERe.

Fausses équivalences 

Certaines expressions semblent a priori équivalentes, mais ne le sont pas toujours, comme par exemple :

  • [a-z] et [[:lower:]]

  • [A-Z] et [[:upper:]]

  • [a-zA-Z] et [[:alpha:]]

  • [a-zA-Z0-9] et [[:alnum:]]

Si la langue déclarée par l’utilisateur comporte des caractères accentués ou spéciaux, le jeu de caractères alphabétiques sera plus important que les seules 26 lettres de l’alphabet français, et les comportements des programmes d’évaluation des expressions régulières seront différents selon que l’on utilise une écriture ou l’autre, ou que l’on utilise une langue ou une autre avec les classes de caractères POSIX. Dans certains cas, les caractères étendus (à, é, î, ô, ù, ç, ...) seront considérés comme des lettres, mais dans d’autres ils seront considérés comme des séparateurs.

Conseils 

La gestion des caractères internationalisés est très délicate, et pas native dans le cas des logiciels d’origine anglo-saxonne. Les implémentations d’interprétations d’expressions régulières comportant des caractères étendus doivent donc être sérieusement testées car elles peuvent parfois réserver de mauvaises surprises.

Si les expressions régulières utilisées doivent prendre en compte des données internationalisées et des jeux de caractères étendus, il sera prudent d’effectuer des tests élémentaires avec des jeux de tests complets et représentatifs.