Les expressions régulières

Définition :

Une règle c’est une description détaillée qui permet de reconnaitre de façon unique une expression dans un texte, mais écrite dans un langage ultra compact et particulièrement abscons.

Exemples de démonstration :

Je veux isoler l’expression SEROLOGIE DE LA TOXOPLASMOSE et la surligner en BLEU CLAIR (AQUA)

Description détaillée de la règle en langage courant

“1 ou Plusieurs Mots Tout en Majuscules, précédés d’une Astérisque suivi d’un Espace, suivis d’un Espace suivi d’une Astérisque

Traduction de la règle en mode 'Expression Régulière' = RegExpé
\*\s+[A-Z ]+\s+\*
Glossaire : RegExpé <-> Français
Règles Explication
 \* Une Astérisque (le signe * étant un opérateur ne peut être utilisé directement, il doit être protégé par un \)
  \s+ Suivi d’un ou plusieurs Espaces ou Tabulations (s = space | s+ = spaces | S = no space)
 [A-Z ]+ Suivi d’un ou plusieurs Mots en Majuscules (incluant la séparation par un Espace) A-Z = toute lettre entre A maj et Z maj

  • Tout en minuscules = [a-z]
  • En majuscules ou en minuscules [A-Za-z]
\s+ Suivi d’un ou plusieurs Espaces ou Tabulations
\* Terminé par une Astérisque.

Exercice :

Écrire la règle complémentaire qui permet d’isoler : “Un nombre quelconque entre 2 Astérisques” (Ex. *12,5*)

Solution
\s+\*\d+[,. ]?\d*\s*\*
Explication
Règle Traduction Explication
\s+ 1 ou plusieurs Espaces obligatoires Permet de pointer le début de l’expression (s = space | s+ = spaces)
\* suivis par 1 Astérisque  
\d+ puis 1 ou plusieurs Chiffres d = digit (un chiffre entre 0 et 9 | d+ = 1 Nombre (1 ou plusieurs digits)
[,. ]? suivis d’un séparateur (ou pas) […] = 1 caractère au choix le la liste entre crochet

? = précise que ce caractère n’est pas obligatoire (Un Nombre Entier par exemple n’a pas de séparateur)

La présence de l’espace sert à distinguer les grands nombres (10 000)

On remarque que le . n’a pas besoin d’être protégé par un \, car il est déjà protégé par un [

\d* suivi d’une ou plusieurs décimales (ou pas) L’opérateur * se distingue donc de + (1 ou plus) et de ? (1 ou moins), en récapitulant les 2 = 1 chiffre ou plus, ou moins (l’entier est sans séparateur ET sans décimales)
\s* suivi d’un ou plusieurs espaces (ou pas) On reprend l’explication précédente :

s* = 1 espace, ou plusieurs espaces, ou pas d’espace (permet de cibler aussi bien “12,5*” que “12,5 * ou 12,5   *”

\* terminé par 1 astérisque