Les Expressions Régulières (Regex) : Le Guide pour Débuter

Métacaractères, classes, quantificateurs et groupes : apprenez les bases des expressions régulières avec des exemples concrets pour chercher et valider du texte.

Partager sur Linkedin Partager sur WhatsApp

Temps de lecture estimé : 7 minutes

Image de l'article Les Expressions Régulières (Regex) : Le Guide pour Débuter

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 :

SymboleSignificationExemple
.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\b trouve « 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 :

QuantificateurSignificationExemple
*0 fois ou plusbo* : « 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.

Flexbox ou CSS Grid : Quand Utiliser l’Un ou l’Autre

Flexbox gère une dimension, Grid en gère deux. Comprenez la différence, les propriétés clés et comment combiner les deux dans un vrai projet.

RECHERCHEV et RECHERCHEX : Retrouver une Donnée dans un Tableau Excel

Apprenez à utiliser RECHERCHEV et RECHERCHEX dans Excel : syntaxe, différences, erreurs fréquentes et astuces pour des recherches fiables.

Comment un Modèle de Langage Génère du Texte : Tokens, Probabilités et Contexte

Découvrez comment fonctionne un modèle de langage : découpage en tokens, prédiction du mot suivant, fenêtre de contexte, hallucinations et bonnes pratiques.

Mémoire Virtuelle et Fichier d’Échange : Ce Qui Se Passe Quand la RAM Est Pleine

Comment un système d’exploitation fait tenir plus de programmes que la RAM ne peut en contenir, et pourquoi la machine ralentit.

Qu’est-ce qu’une API REST ? Le langage commun des applications

Comprendre les API REST : ressources, méthodes HTTP, codes de statut et bonnes pratiques, expliqués simplement.

Clés Primaires et Clés Étrangères : Comprendre les Relations entre Tables

Clé primaire, clé étrangère, intégrité référentielle : les notions de base pour organiser correctement une base de données relationnelle.

Git et le Contrôle de Version : Comprendre les Bases

Découvrez à quoi sert un système de contrôle de version, les commandes essentielles de Git et les bonnes pratiques pour travailler en équipe.

Qu’est-ce que le phishing et comment s’en protéger ?

Découvrez ce qu’est le phishing, comment reconnaître ces tentatives d’arnaque en ligne et quels réflexes adopter pour protéger vos données.