Expressions régulières - Bases et syntaxes fréquentes
  • 12 Nov 2022
  • 2 Minutes à lire
  • Contributeurs
  • Sombre
    Clair
  • PDF

Expressions régulières - Bases et syntaxes fréquentes

  • Sombre
    Clair
  • PDF

Résumé de l’article

Objet de l'article

Cet article précise comme créer une expression régulière et il fournit les syntaxes les plus fréquentes.

Références et test

Le site Internet https://regex101.com fournit de nombreuses ressources et un outil puissant pour analyser en ligne vos expressions régulières.

Bases des expressions régulières

Un expression régulière est formée de symboles qui précisent les règles qui s'appliquent à l'extraction d'information dans une chaîne de caractère.

Les caractères

Les symboles suivants représentent un caractère :

  • [a-c] : un caractère alphabétique compris entre a et c, en minuscule / [A-C] : un caractère alphabétique compris entre A et C, en majuscule
  • [a-zA-Z] : un caractère alphabétique compris entre a et z, minuscule ou majuscule
  • [0-5] : un chiffre compris entre 0 et 5
  • [^a-z] : le chapeau ^ est un opérateur d'inversion. Cela signifique que le caractère est tout sauf compris entre a et z, minuscule
  • [-_] : un caractère soit tiret, soit tiret-bas (underscore)
  • Le point représente n'importe quel caractère

Les répétitions

Les symboles suivants précisent les règles de répétitions des caractères :

  • a* : l'astérique permet un nombre illimité de répétition du caractère a
  • a+ : vérifie la présence de un ou plusieurs caractères a
  • a? : vérifie la présence de zéro ou un caractère a
  • (...)? : vérifie la présence d'aucun ou un groupe de capture
  • a{3} ou a{3,3} : exactement trois répétitions du caractère a
  • [a-zA-Z]{3,1} : trois répétitions ou plus des caractères compris entre a et z, minuscule ou majuscule.
  • [0-1]{3,6} : entre trois et six répétitions d'un chiffre compris entre 0 et 1

Les conditions

  • : placé en début d'expression, il indique le début de la chaîne. Cela signifie qu'il oblige l'expression à évaluer avec succès à partir du premier caractère.
  • $ : placé en fin d'expression, il indique la fin de la chaîne. Cela signifie qu'il oblige l'expression à évaluer avec succès jusqu'au dernier caractère.
  • (...) : les parenthèses permettent de créer un groupe de capture d'expression
  • (?:...) : capture tout ce qui fait partie du groupe
  • (?<name>...) : groupe de capture d'expression nommé. Dans Cooperlink, l'utilisation de la clé d'un champ permet son identification au champ concerné.

Exemple

Nom de fichier de type [code]-[titre]-[indice]

Décodons l'expression régulière suivante ayant la structure [CODE]-[TITRE]-[INDICE] : 

DEMO[-_](?<demo_en_document_status>[a-zA-Z]{2,2})[_-](?<demo_en_type>[a-zA-Z]{2,2})[_-](?<demo_en_package>[a-zA-Z]{4,4})[_-](?<demo_en_number>[0-9]{3,3})-(?<title>.*?)(?:[_-](?<demo_en_revision_number>[a-zA-Z]))?$

La chaine de caractère est évaluée comme suit :

  • Elle doit commencer par DEMO
  • Suivi ensuite d'un tiret ou tiret-bas (underscore)
  • Les caractères suivants doivent être alphabétiques, au nombre de 2, minuscule ou majuscule. Ces 2 lettres seront capturées dans le groupe demo_en_document_status. Au sein de Cooperlink, en cas de liste de valeurs, le code de 2 caractères extrait doit être une des valeurs encodée dans la configuration du champ.
  • Suivi ensuite d'un tiret ou tiret-bas (underscore)
  • Les caractères suivants doivent être alphabétiques, au nombre de 2, minuscule ou majuscule (groupe demo_en_type). 
  • Suivi ensuite d'un tiret ou tiret-bas (underscore)
  • Les caractères suivants doivent être alphabétiques, au nombre de 4, minuscule ou majuscule (groupe demo_en_package). 
  • Suivi ensuite d'un tiret ou tiret-bas (underscore)
  • Les caractères suivants doivent être numériques, au nombre de 3 (groupe demo_en_number)
  • Suivi ensuite d'un tiret
  • Une chaîne de caractère indéterminée est ensuite capturée dans un groupe title. L'astérisque permet de garantie l'évaluation positive de l'expression jusqu'au dernier caractère suite à la présence du caractère $ en fin de chaîne.
  • Un caractère alphabétique unique, minuscule ou majuscule, est optionnellement présent en fin de chaîne, et précédé d'un tiret ou d'un tiret-bas (underscore). Celui-ci est capturé comme indice de révision dans le groupe demo_en_revision_number.

Extrait de regex101



Cet article vous a-t-il été utile ?