Créa-blog

#100JoursPourCoder
Projet Créa-code

Ressources pour développeur web

Théme de la semaine : Les REGEX

Regex pour débutant : comprendre ces “expressions bizarres”

Temps de lecture estimé : 10 minutes
Accueil PHP 8 Regex pour débutant : comprendre ces “expressions bizarres”

Les expressions régulières, souvent appelées Regex, font peur à beaucoup de débutants. Vous avez sûrement déjà vu une série de caractères remplis de symboles étranges comme ^$\d+, et votre cerveau s’est peut-être dit “ça ressemble à du langage extraterrestre”. Pourtant, derrière cette apparence intimidante, se cache un outil incroyablement puissant et extrêmement utile lorsque l’on développe, automatise des tâches ou manipule des textes. Ce guide a justement pour objectif de vous aider à comprendre les regex calmement, pas à pas, pour que même en tant que débutant, vous puissiez les utiliser avec confiance.

  • Comprendre enfin ce qu’est une regex et comment elle peut vous simplifier la vie lorsque vous travaillez avec du texte, des formulaires ou des données.
  • Gagner en autonomie en apprenant à lire et analyser des expressions régulières sans stress, même lorsqu’elles paraissent complexes au premier regard.
  • Être capable d’utiliser concrètement des regex de base dans vos projets pour valider, filtrer ou vérifier des informations avec plus de précision et de confiance.

Prenez ce sujet comme une petite aventure logique plutôt qu’un mur à escalader. Les regex servent simplement à chercher, vérifier ou extraire des informations dans du texte. Vous pouvez les utiliser pour vérifier une adresse email, filtrer un numéro de téléphone, nettoyer un formulaire ou analyser des fichiers. Bref, ce n’est pas un gadget, mais un véritable super-pouvoir pour toute personne qui travaille avec du code ou des données. Et plus vous allez avancer dans ce guide, plus vous allez réaliser que ces “expressions bizarres” sont finalement très logiques.

Vous n’avez pas besoin d’être mathématicien, ni développeur expert, ni de connaître tout par cœur. Vous avez seulement besoin d’un peu de curiosité et de patience. L’objectif est simple : que vous puissiez dire à la fin “ok, je suis capable d’écrire et comprendre une regex de base”. Et croyez-moi, ce sera déjà énorme.

Qu’est-ce qu’une regex exactement ?

Une regex, ou expression régulière, est une sorte de langage miniature qui permet de décrire un motif dans un texte. Au lieu de dire “cherche précisément ce mot”, on peut dire “cherche quelque chose qui ressemble à ça”. C’est un outil capable de reconnaître des formes dans des chaînes de caractères.

Si je vous dis “trouvez tous les mots qui commencent par S dans une phrase”, vous comprenez instinctivement ce que je veux. Une regex fait la même chose, mais avec une précision incroyable, directement dans un programme ou un outil informatique. C’est un détecteur de modèles.

Par exemple, si vous cherchez uniquement les chiffres dans un texte, vous pouvez utiliser une regex simple comme :

\d

Le symbole \d signifie “un chiffre”. Déjà, vous avez votre première regex.

Pourquoi apprendre les regex quand on débute ?

Si vous débutez en développement ou en manipulation de données, comprendre les regex est incontournable tôt ou tard. Elles permettent de valider des formulaires, sécuriser des entrées utilisateurs, filtrer des informations, supprimer des caractères inutiles, analyser des logs serveur, automatiser des tâches, et bien plus encore.

Et surtout, elles vous font gagner du temps. Beaucoup de temps.

Imaginez une personne qui pendant des mois nettoyait manuellement des fichiers CSV remplis d’emails mal écrits, de numéros de téléphone mélangés et de caractères inutiles. Puis un jour, cette personne découvre les regex. Dix minutes plus tard, le travail de trois jours est réglé. À ce moment précis, on ressent une drôle de sensation entre soulagement et “mais pourquoi je n’ai pas appris ça plus tôt ?”. Vous vivrez probablement aussi ce moment-là.

La structure d’une regex : C’est pas si sorcier

Une regex n’est pas une suite magique de symboles posés au hasard. Elle suit une logique simple : vous décrivez ce que vous cherchez. Si vous écrivez simplement :

chat

Cette regex va chercher littéralement le mot “chat” dans un texte. Rien de compliqué pour l’instant.

Là où ça devient intéressant, c’est lorsqu’on commence à utiliser des symboles spéciaux pour donner plus d’intelligence à la recherche. Par exemple :

^chat

Le symbole ^ signifie “au début de la ligne”. Cette regex signifie donc “le mot chat doit être au début”.

Autre exemple :

chat$

Le symbole $ signifie “fin de ligne”. Cela veut dire : le texte doit finir par “chat”. Déjà, vous voyez que ce n’est pas si étrange. Ce sont juste des règles pour être précis.

Reconnaitre des chiffres, des lettres, des mots

Souvent, quand on veut comprendre les regex, il faut maîtriser quelques symboles de base. Pas besoin d’en connaître cinquante, une dizaine suffit largement pour démarrer et comprendre les regex sereinement.

Pour détecter un chiffre, vous l’avez vu, on utilise :

\d

Pour détecter une lettre, cela peut être :

[a-z]

Ici, les crochets indiquent une plage. Cela signifie : n’importe quelle lettre minuscule entre a et z. Si vous voulez inclure les majuscules, vous pouvez écrire :

[a-zA-Z]

Maintenant, si vous souhaitez reconnaître plusieurs lettres d’affilée, on ajoute des quantificateurs. Par exemple :

[a-zA-Z]+

Le symbole + signifie “une ou plusieurs fois”. Cette regex détecte donc un mot composé de lettres.

Si vous voulez reconnaître uniquement des chiffres, par exemple un nombre composé de plusieurs chiffres :

\d+

Cela signifie : un ou plusieurs chiffres.

Vous voyez ? Ce n’est rien de plus que des petites briques logiques que l’on assemble.

Vérifier des formats courants : premiers cas concrets

C’est en manipulant de vrais exemples que l’on commence vraiment à comprendre les regex. Par exemple, vérifier si une chaîne ressemble à un numéro avec uniquement des chiffres :

^[0-9]+$

Le ^ dit “ça commence ici”.
Le $ dit “ça se termine là”.
Entre les deux, [0-9]+ signifie : un ou plusieurs chiffres.

Donc cette regex vérifie que le texte contient uniquement des chiffres du début à la fin.

Autre exemple fréquent, vérifier un prénom simple avec uniquement des lettres :

^[A-Za-z]+$

Cela signifie : uniquement des lettres, sans autre caractère autorisé.

Vous pouvez déjà imaginer à quel point cela devient puissant pour les formulaires.

Comprendre petit à petit, sans vouloir tout apprendre d’un coup

Beaucoup abandonnent trop vite parce qu’ils veulent apprendre toutes les possibilités d’un coup. Mauvaise idée. Le meilleur moyen de vraiment comprendre les regex, surtout quand on est regex débutant, est de progresser étape par étape, en essayant, en testant, en corrigeant. Ce n’est pas un langage à réciter par cœur, c’est un outil à apprivoiser.

Pour cette première grande partie, vous avez déjà fait un énorme pas : vous savez ce qu’est une regex, à quoi elle sert, comment elle s’écrit, et vous avez déjà vu des exemples concrets. Maintenant, nous pouvons aller plus loin avec des notions essentielles comme les quantificateurs avancés, les groupes, les caractères spéciaux, des exemples plus réalistes comme les emails, les mots de passe, les URLs, ainsi que des conseils pour éviter les pièges.

Dites-vous simplement que si vous êtes arrivé jusqu’ici, vous êtes déjà en train de vraiment comprendre les regex. Et ça, c’est une très bonne nouvelle.

Les quantificateurs : dire “combien de fois” quelque chose peut apparaître

Lorsque l’on veut comprendre les regex en profondeur, il faut absolument savoir contrôler la quantité. Vous savez déjà que + signifie “une ou plusieurs fois”. Mais il existe d’autres quantificateurs essentiels qui vous donnent beaucoup plus de précision.

Le symbole * signifie “zéro ou plusieurs fois”. Cela veut dire qu’un élément peut être présent… ou pas du tout. Par exemple, si vous écrivez :

ab*c

Cela correspond à : la lettre a, suivie de zéro, une ou plusieurs lettres b, puis la lettre c. Donc “ac”, “abc”, “abbbc” sont valides.

Ensuite, il y a ? qui signifie “optionnel”. Il indique que l’élément peut être présent une seule fois… ou pas du tout. Par exemple :

colou?r

Cette regex reconnaît “color” et “colour”. Très pratique lorsqu’on traite des textes venant de différents pays ou variantes linguistiques.

Pour aller encore plus loin, on peut préciser exactement combien de fois une chose peut apparaître en utilisant les accolades. Par exemple :

\d{4}

Cela signifie : exactement 4 chiffres. Idéal pour une année comme 2026. Si vous souhaitez dire “entre 2 et 5 fois”, vous pouvez écrire :

\d{2,5}

Déjà ici, vous voyez à quel point il devient plus facile de contrôler précisément ce que l’on veut détecter.

Les groupes : capturer et structurer ce que l’on trouve

Une des vraies forces des regex, quand on souhaite vraiment comprendre les regex et sortir du niveau “regex débutant”, ce sont les groupes. Ils permettent de diviser une regex en parties logiques, de capturer des éléments précis et même de les réutiliser.

Un groupe se définit avec des parenthèses. Par exemple :

(abc)+

Cela veut dire que la séquence “abc” peut être répétée plusieurs fois. Donc “abc”, “abcabc”, “abcabcabc” fonctionneront.

Mais surtout, les groupes permettent de capturer des informations. Imaginez une date simple de type 12/05/2026. Une regex pourrait ressembler à ceci :

(\d{2})\/(\d{2})\/(\d{4})

Chaque groupe entre parenthèses représente une partie : le jour, le mois, l’année. Cela permet ensuite, dans un programme, de récupérer chaque morceau séparément. Vous ne faites plus seulement une simple vérification, vous structurez l’information.

Il existe aussi ce qu’on appelle les groupes non capturants avec (?: ). Ils servent lorsque l’on souhaite regrouper sans stocker. Au début, vous n’en aurez pas forcément besoin, mais ils finiront par devenir utiles quand vos regex commenceront à devenir plus complexes et que vous voudrez les garder lisibles.

Différence entre \ et / en regex

Le backslash \

Le \ est un caractère d’échappement. Il sert à donner une signification spéciale à un caractère, ou au contraire à annuler une signification. Exemples :

  • \d = chiffre
  • \s = espace
  • \w = lettre / chiffre / underscore
  • \. = un vrai point (sinon . signifie “n’importe quel caractère”)

Sans lui, beaucoup de symboles ne fonctionneraient pas.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Le slash /

Le / n’est pas un symbole “logique” des regex. Il sert surtout de délimiteur de regex dans certains langages. Par exemple :

  • En JavaScript
/^[0-9]+$/

Les / / entourent la regex.

  • En PHP (preg_match)
/^[A-Za-z]+$/

Donc / délimite la regex… et à l’intérieur, ce ne sont pas les / qui font la logique, mais les symboles comme ^$[]+, etc.

Résumé clair :

  • \ = outil interne à la regex, utilisé pour les caractères spéciaux et les classes (\d\s\. etc.)
  • / = souvent juste un contenant, un “cadre” autour de la regex dans certains langages

Dans la Regex de la date, pourquoi \/ et pas simplement / ?

Le / n’est pas un symbole “regex” ici. Ce n’est pas comme \d. ou +. Le / sert simplement à représenter… un slash normal, comme celui que l’on retrouve dans les dates.

Mais pourquoi le précéder d’un backslash \ alors ?

Parce que dans certains langages (comme PHP ou JavaScript), le slash / est utilisé comme délimiteur de regex. Exemple en JavaScript :

/(\d{2})\/(\d{2})\/(\d{4})/
^                         ^
début regex         fin regex

Si vous écriviez /(\d{2})/(\d{2})/(\d{4})/
le moteur croirait que la regex se termine trop tôt.

Donc le \ permet de dire : “Attention, ce / fait partie du texte, ce n’est PAS la fin de la regex”.

Est-ce obligatoire partout ?

Pas toujours.

  • En JavaScript → OUI obligatoire car / est un délimiteur
  • En PHP preg_match() → OUI si vous utilisez / comme délimiteur
  • En Python (où la regex est une simple chaîne) → Pas besoin
  • En outils comme regex101 : ça dépend du mode choisi

Par exemple en Python :

r"(\d{2})/(\d{2})/(\d{4})"

Ici pas besoin de \/.

Donc, dans notre regex pour la date de type 25/12/2026 :

\/
  • \ = sert à échapper
  • / = vrai caractère slash que vous voulez dans le texte
  • donc \/ = “match un slash littéral”

Les () servent à créer des groupes
Les \d{2} = 2 chiffres
Les \d{4} = 4 chiffres

Résultat :
Cette regex valide une date au format 12/05/2026 et permet même de récupérer jour, mois, année séparément.

Le caractère d’échappement sert à dire au moteur regex qu’un symbole spécial doit être compris comme un caractère normal

Les caractères spéciaux et l’échappement

Une chose qui peut perturber au début, c’est que certains caractères ont une signification spéciale en regex. Par exemple le point . signifie “n’importe quel caractère”. Donc si vous écrivez :

a.c

Cela correspond à “abc”, “a9c”, “a_c”, bref tout ce qui a trois caractères avec un a au début et un c à la fin.

Mais du coup, que faire si vous voulez vraiment détecter un point dans un texte, par exemple dans une adresse email ou une URL ? C’est là qu’entre en jeu l’échappement avec le caractère \. Comme pour notre date.

Par exemple, pour détecter un vrai point, vous écrirez :

\.

Le backslash \ dit explicitement au moteur regex : “attention, ce caractère doit être pris au sens littéral”. On s’en sert souvent pour les parenthèses, les crochets, le plus, etc., dès qu’on veut les considérer comme de simples caractères.

Exemple concret : comprendre une regex d’email sans paniquer

Même si tout le monde rêve d’une regex d’email parfaite, la vérité, c’est qu’il n’en existe pas une “universelle” qui fonctionne pour tous les cas. Mais on peut créer une version raisonnable, simple et pédagogique pour un usage courant. Prenons par exemple :

^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$

Décortiquons tranquillement. Le ^ et $ encadrent pour dire “uniquement ce format, rien d’autre”. Avant le @, on autorise des lettres, chiffres et quelques symboles classiques utilisés dans les emails. Après le @, on retrouve un nom de domaine, puis un point, puis une extension comme “fr”, “com”, “org”.

Ce qui est important ici, ce n’est pas de tout mémoriser, mais d’arriver à lire cette regex. C’est là que l’on commence vraiment à comprendre les regex.

Exemple utile : vérifier un mot de passe

C’est un cas très courant en développement web. Imaginons que vous vouliez un mot de passe contenant au minimum une majuscule, une minuscule, un chiffre et huit caractères au total. Une regex possible serait :

^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).{8,}$

Les parties (?=.*[A-Z]) sont ce qu’on appelle des “lookaheads”. Elles ne consomment pas de texte, mais elles vérifient qu’une condition est respectée. C’est une façon élégante d’imposer des règles.

Encore une fois, ne paniquez pas si ça semble dense. L’important pour un débutant en regex, c’est surtout d’accepter que certaines regex paraîtront plus complexes que d’autres, mais qu’elles restent lisibles si on les découpe.

Exemple concret et fréquent : une URL

Pour rester simple, imaginons une regex pour vérifier une URL basique :

^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}$

Vous reconnaissez peut-être déjà des choses. http ou https, puis ://, puis un nom de domaine et une extension. Ce genre d’exemple montre à quel point les expressions régulières peuvent coller à des situations du quotidien lorsqu’on travaille sur un site web ou une application.

Comment progresser réellement avec les regex sans se décourager

L’un des meilleurs conseils pour comprendre les regex et sortir définitivement de l’étiquette “regex débutant”, c’est de pratiquer un peu, mais souvent. Il existe des outils en ligne comme regex101 ou regexr qui permettent de tester en direct vos expressions régulières. Vous tapez votre regex, votre texte, et vous voyez immédiatement ce qui correspond.

Prenez également l’habitude de découper. Si une regex vous semble trop longue, analysez-la morceau par morceau. On commence par comprendre un groupe, puis un autre, puis on assemble. Exactement comme un puzzle. On ne regarde pas directement l’image complète en se décourageant. On pose une pièce, puis une autre.

Et surtout, ne cherchez pas à être parfait immédiatement. Même les développeurs expérimentés font parfois plusieurs essais avant d’arriver à la regex idéale. C’est normal, et cela fait partie du jeu.

Quelques bonnes pratiques simples pour éviter les pièges

Essayez autant que possible de garder vos regex lisibles. Vous pouvez par exemple utiliser des groupes, indenter dans certains outils ou même commenter vos regex dans certains langages.

Ne surchargez pas vos expressions régulières. Parfois, vouloir absolument tout gérer en une seule regex géante rend le code plus fragile et plus difficile à maintenir. Il vaut mieux une regex claire et compréhensible qu’une usine à gaz incompréhensible.

Enfin, souvenez-vous qu’une regex n’est pas toujours la solution. Si un problème peut être réglé plus simplement avec une fonction classique, alors faites-le. Savoir comprendre les regex, c’est aussi savoir quand les utiliser intelligemment.

Comment utiliser concrètement une regex dans vos projets

Comprendre les regex, c’est bien. Savoir les utiliser réellement dans un projet, c’est encore mieux. La bonne nouvelle, c’est que la plupart des langages proposent déjà des fonctions prêtes à l’emploi pour exploiter les expressions régulières. Vous n’avez donc pas besoin d’installer quoi que ce soit, il suffit simplement d’utiliser les bonnes fonctions.

L’idée reste toujours la même : vous écrivez une regex, vous l’appliquez sur un texte, puis vous regardez si ça correspond ou non. Cela peut servir à valider des formulaires, filtrer une chaîne de caractères, analyser un contenu, ou encore extraire une partie précise d’un texte.

Exemple simple en JavaScript

En JavaScript, les regex sont directement intégrées dans le langage. Vous pouvez les écrire entre deux /. Ensuite, vous avez des méthodes comme test() pour vérifier si un texte correspond.

Ici, on va vérifier si un texte contient seulement des chiffres.

const regex = /^[0-9]+$/;
const valeur = "12345";

if (regex.test(valeur)) {
    console.log("La valeur est valide !");
} else {
    console.log("La valeur est incorrecte.");
}

Ce qui se passe ici est très simple à comprendre. La regex ^[0-9]+$ signifie : uniquement des chiffres du début à la fin. La fonction test() renvoie true si ça correspond, sinon false. Cela suffit déjà pour valider un champ de formulaire côté navigateur par exemple.

Exemple simple en PHP

En PHP, on utilise très souvent la fonction preg_match(). Elle fonctionne sur le même principe : une regex, un texte, et une réponse qui dit si ça passe ou non.

Prenons un exemple qui vérifie si une adresse email semble valide.

$email = "contact@example.com";
$regex = "/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/";

if (preg_match($regex, $email)) {
    echo "Email valide";
} else {
    echo "Email invalide";
}

Ici, preg_match() renvoie 1 si la chaîne correspond, 0 sinon. Cela permet par exemple de sécuriser un formulaire d’inscription, ou de filtrer une liste d’emails dans un script.

Que vous soyez en JavaScript, en PHP ou dans un autre langage, la logique reste identique. La regex décrit le modèle à reconnaître et la fonction native du langage se charge de vérifier. Si la correspondance est bonne, vous continuez le traitement. Sinon, vous refusez ou affichez un message d’erreur. Avec seulement quelques lignes, vous gagnez en fiabilité, en professionalisme et surtout… en tranquillité d’esprit.

Tableau récapitulatif des symboles Regex

SymboleSignificationExempleCe que l’exemple fait
.N’importe quel caractèrea.cCorrespond à “abc”, “a9c”, “a_c”…
^Début de ligne^HelloDoit commencer par “Hello”
$Fin de ligneworld$Doit finir par “world”
[]Ensemble / plage de caractères[A-Z]Une lettre majuscule entre A et Z
[^ ]Négation dans un ensemble[^0-9]N’importe quel caractère sauf un chiffre
-Plage de valeurs[a-z]De a à z
\dChiffre\d\dDeux chiffres
\DNon chiffre\DTout sauf un chiffre
\wLettre, chiffre, underscore\w+Mot “alphanumérique”
\WTout sauf lettre/chiffre/underscore\WCaractère spécial
\sEspace, tabulation, retour à la ligne\s+Un ou plusieurs espaces
\STout sauf espace\SCaractère non vide
+1 ou plusieursa+Un ou plusieurs “a”
*0 ou plusieursa*Peut être vide ou avoir plusieurs “a”
?0 ou 1colou?rCorrespond à “color” et “colour”
{n}Exactement n répétitions\d{4}4 chiffres
{n,}Au moins n répétitions\d{2,}2 chiffres ou plus
{n,m}Entre n et m répétitions\d{2,5}Entre 2 et 5 chiffres
()Groupe capturant(abc)+Répète la séquence “abc”
(?: )Groupe non capturant(?:abc)Groupe sans capture
``OU logique`chat
\\Échapper un caractère spécial\.Vrai point “.”

Vous venez de dompter quelque chose d’important !

Si vous êtes arrivé jusqu’ici, vous pouvez être fier de vous. Vous avez pris un sujet réputé compliqué, vous l’avez exploré calmement, et vous avez commencé à vraiment comprendre les regex. Vous avez vu les bases, les symboles importants, les groupes, les quantificateurs, ainsi que des exemples concrets comme les emails, mots de passe et URLs. Vous n’êtes plus simplement un regex débutant perdu devant une suite de caractères incompréhensible. Vous êtes maintenant quelqu’un qui sait lire, analyser et commencer à écrire des expressions régulières.

Et surtout, rappelez-vous ceci : une regex n’est qu’un outil. Ce n’est ni de la magie, ni un secret réservé aux développeurs “ultra avancés”. C’est un langage logique, précis, parfois un peu capricieux, mais extrêmement puissant quand on apprend à le maîtriser. Si aujourd’hui vous avez compris ne serait-ce que 50 % de ce que vous avez lu, c’est déjà énorme, car la progression continue naturellement avec la pratique.

Alors oui, ces “expressions bizarres” continueront peut-être de vous surprendre, mais elles ne vous feront plus peur. Et le jour où vous écrirez votre première vraie regex utile dans un projet, il y a de grandes chances que vous ressentiez un petit mélange de fierté et de satisfaction. Et honnêtement, ce genre de moment vaut largement les quelques efforts faits aujourd’hui pour comprendre les regex.