Vous devez retrouver toutes les adresses e-mail dans un long fichier, vérifier qu’un code postal saisi dans un formulaire contient bien cinq chiffres, ou remplacer toutes les dates écrites au format « 2026-11-14 » par « 14/11/2026 ». Faire cela à la main serait long et source d’erreurs. Les expressions régulières, souvent appelées regex, permettent de décrire un motif de texte et de le rechercher, le valider ou le remplacer automatiquement.
Leur syntaxe paraît cryptique au premier abord, mais elle repose sur un petit nombre de briques logiques. Ce guide vous présente ces briques, avec des exemples concrets.
Qu’est-ce qu’une expression régulière ?
Une expression régulière est une chaîne de caractères qui décrit un motif (en anglais, pattern). Un moteur de regex parcourt ensuite un texte pour trouver les portions qui correspondent à ce motif.
On les retrouve presque partout : dans les langages de programmation (Python, JavaScript, Java, PHP…), dans les outils en ligne de commande comme grep ou sed, dans les éditeurs de code comme VS Code, et même dans certains tableurs, comme Google Sheets avec ses fonctions REGEX. Il existe de petites différences de syntaxe entre ces outils, mais les bases présentées ici sont communes à la plupart d’entre eux.
Les caractères littéraux
Le cas le plus simple : la plupart des caractères se représentent eux-mêmes. La regex chat trouve le mot « chat » dans « Le chat dort », mais aussi dans « château », car elle cherche simplement cette suite de lettres. Par défaut, la recherche est sensible à la casse : chat ne trouve pas « Chat ».
Les métacaractères essentiels
Certains caractères ont une signification spéciale. Ce sont eux qui donnent toute leur puissance aux regex :
| Symbole | Signification | Exemple |
|---|---|---|
. | N’importe quel caractère (sauf, en général, le retour à la ligne) | c.t trouve « cat », « cot », « c3t » |
^ | Début de la ligne ou du texte | ^Bonjour : ligne qui commence par « Bonjour » |
$ | Fin de la ligne ou du texte | \.pdf$ : texte qui se termine par « .pdf » |
[ ] | Un caractère parmi une liste | [aeiou] : une voyelle |
[^ ] | Un caractère qui n’est pas dans la liste | [^0-9] : tout sauf un chiffre |
| | Alternative (« ou ») | chat|chien |
( ) | Groupe | (ab)+ : « ab », « abab »… |
\ | Échappement d’un caractère spécial | \. : un vrai point |
À l’intérieur des crochets, le tiret indique une plage : [a-z] désigne une lettre minuscule non accentuée, [A-Z] une majuscule et [0-9] un chiffre.
Les classes abrégées
\d: un chiffre (équivalent courant de[0-9]) ;\D: tout sauf un chiffre.\w: un caractère « de mot » (lettre, chiffre ou tiret bas) ;\W: l’inverse.\s: un espace blanc (espace, tabulation, retour à la ligne) ;\S: l’inverse.\b: une limite de mot. Ainsi,\bchat\btrouve « chat » mais plus « château ».
Selon le langage et ses options, \w peut inclure ou non les lettres accentuées comme « é » ou « ç ». C’est un point à vérifier lorsqu’on travaille sur des textes en français.
Les quantificateurs
Les quantificateurs indiquent combien de fois l’élément qui les précède peut se répéter :
| Quantificateur | Signification | Exemple |
|---|---|---|
* | 0 fois ou plus | bo* : « b », « bo », « boo » |
+ | 1 fois ou plus | \d+ : un nombre entier |
? | 0 ou 1 fois (facultatif) | couleurs? : « couleur » ou « couleurs » |
{n} | Exactement n fois | \d{5} : cinq chiffres |
{n,m} | Entre n et m fois | [a-z]{2,4} |
Par défaut, * et + sont gourmands : ils capturent le plus de caractères possible. Ajouter ? juste après (*?, +?) les rend « paresseux », c’est-à-dire qu’ils s’arrêtent dès que possible. C’est utile, par exemple, pour capturer le contenu d’une seule balise HTML au lieu de tout le texte entre la première et la dernière.
Exemples pratiques
- Code postal français :
^\d{5}$vérifie que la saisie contient exactement cinq chiffres, ni plus ni moins. - Numéro de téléphone français à 10 chiffres :
^0\d{9}$accepte « 0612345678 ». Pour autoriser des espaces :^0\d( ?\d{2}){4}$. - Date au format AAAA-MM-JJ :
\d{4}-\d{2}-\d{2}repère la forme, sans vérifier que la date existe réellement. - Adresse e-mail (version simplifiée) :
[\w.+-]+@[\w-]+\.[\w.-]+. Elle convient pour une recherche rapide, mais valider parfaitement une adresse e-mail avec une regex est notoirement difficile.
Les groupes de capture et le remplacement
Les parenthèses ne servent pas qu’à regrouper : elles capturent la partie du texte correspondante, que l’on peut réutiliser lors d’un remplacement. Pour transformer « 2026-11-14 » en « 14/11/2026 », on peut chercher :
(\d{4})-(\d{2})-(\d{2})
et remplacer par $3/$2/$1 (dans VS Code ou JavaScript) ou \3/\2/\1 (dans Python ou sed). Chaque numéro renvoie au groupe correspondant, dans l’ordre des parenthèses ouvrantes.
Conseils pour bien débuter
- Testez vos regex sur des exemples réels avec un outil en ligne de test ou directement dans votre éditeur, qui surligne les correspondances.
- Construisez progressivement : commencez par un motif simple, puis ajoutez les contraintes une à une.
- N’oubliez pas d’échapper les caractères spéciaux comme le point, le plus ou les parenthèses quand vous les cherchez littéralement.
- Commentez vos regex complexes dans le code, car elles deviennent vite difficiles à relire.
- Ne les utilisez pas pour tout : pour analyser du HTML ou du JSON complet, mieux vaut un analyseur dédié.
Conclusion
Les expressions régulières sont un langage compact pour décrire des motifs de texte. Avec quelques métacaractères, des classes comme \d ou \w, des quantificateurs et des groupes de capture, vous pouvez déjà rechercher, valider et transformer des données en quelques secondes. C’est une compétence précieuse pour les développeurs, mais aussi pour toute personne qui manipule régulièrement des fichiers et des listes.
Pour aller plus loin avec les outils du quotidien des professionnels de l’informatique, comme le terminal, Git ou les éditeurs de code, découvrez les cours gratuits d’Outils informatiques proposés sur Cursa.











