Aller au contenu
OneKitly

Les bases des regex : guide du débutant

Publié le 10/10/2025 · 3 min de lecture · Outils pour développeurs

Daniel Okonkwo

Daniel OkonkwoDéveloppeur front-end et rédacteur Tech chez OneKitly

Performance web · Formats de fichiers

Vérifié à partir de 2 sources

Voir le profil
En bref

Une expression régulière (regex) est un motif pour rechercher du texte. L'essentiel : les caractères littéraux se représentent eux-mêmes, . correspond à n'importe quel caractère, \d à un chiffre, \w à un caractère de mot, \s à un espace ; * signifie zéro ou plus, + un ou plus, ? optionnel ; [abc] correspond à l'un des caractères listés, ^ et $ ancrent au début et à la fin. Ainsi \d{3}-\d{4} correspond à un numéro comme 555-1234.

Une expression régulière est un motif pour rechercher du texte. Voici les briques de base — classes de caractères, quantificateurs et ancres — avec un exemple.

À quoi servent les regex

Une expression régulière décrit un motif plutôt qu'une chaîne exacte, ce qui permet de rechercher, valider, extraire et remplacer du texte bien plus souplement. Au lieu de chercher un numéro fixe, tu décrives la forme de n'importe quel numéro et tu les trouves tous. Elles alimentent le rechercher-remplacer des éditeurs, la validation de formulaires et l'extraction de données depuis journaux et textes.

Les briques de base

L'essentiel d'un motif est du texte littéral qui se représente lui-même. Là où le texte varie, on utilise des classes de caractères : \d correspond à un chiffre, \w à un caractère de mot (lettres, chiffres, underscore), \s à un espace, et le point . à presque n'importe quel caractère unique. Un ensemble entre crochets comme [aeiou] correspond à l'un des caractères listés, et [^0-9] à tout sauf ceux-là.

Quantificateurs et ancres

Les quantificateurs indiquent combien de fois l'élément précédent peut se répéter : * zéro ou plus, + un ou plus, ? optionnel (zéro ou un), et {3} exactement trois, {2,4} entre deux et quatre. Les ancres fixent la correspondance : ^ marque le début du texte et $ la fin, si bien que ^abc$ ne correspond qu'à la chaîne exacte « abc ». Les parenthèses ( ) regroupent des parties.

Un exemple concret

Pour trouver un numéro comme 555-1234, décris sa forme : trois chiffres, un tiret, quatre chiffres. C'est \d{3}-\d{4}. Pour autoriser aussi un indicatif optionnel entre parenthèses, tu peux l'étendre pas à pas, en testant au fur et à mesure. Note que les quantificateurs sont gourmands par défaut — ils prennent le plus possible — ce qui est bon à retenir quand les motifs s'allongent.

Testeur de regexTeste une expression régulière et vois ce qu'elle fait : les correspondances surlignées dans le texte, chaque groupe capturé listé, un panneau de remplacement, et le motif relu morceau par morceau. Les drapeaux sont des boutons qui disent ce qu'ils changent, et un motif capable de figer la page est signalé avant d'être lancé.Essayer l'outil

Questions fréquentes

Que signifie \d en regex ?
Il correspond à un chiffre, de 0 à 9. Ainsi \d{3} correspond à exactement trois chiffres d'affilée.
Quelle différence entre * et + ?
* correspond à zéro ou plus de l'élément précédent, + à un ou plus — donc + exige au moins une occurrence.
Les regex sont-elles identiques dans tous les langages ?
La syntaxe de base est commune, mais les détails et variantes diffèrent entre JavaScript, Python, PCRE et d'autres — consulte la doc de ton langage pour les cas limites.

Articles qui pourraient t'intéresser

Tous les guides
ComparatifJSON vs XML : quelle différence ?JSON et XML stockent tous deux des données structurées en texte, mais avec des compromis différents. Voici à quoi ressemble chacun, où chacun l'emporte et comment choisir.GuideRechercher-remplacer : les pièges des expressions régulières, démontrés un par unGourmand contre paresseux sur la même chaîne, le point qui saute les retours à la ligne, $& et $$ dans le remplacement, une regex /g réutilisée qui saute une ligne en silence, et pourquoi /i ignore tout du i turc. Chaque échec exécuté dans Node, avec une routine compter-puis-remplacer qui les attrape.ExplicationExtraire toutes les adresses e-mail ou URL d'un bloc de texteUne URL en fin de phrase garde le point ; une adresse e-mail en fin de la même phrase, non. Un prénom accentué dans une adresse revient tronqué. Chaque cas a été passé dans les outils et la sortie exacte est reproduite.ExplicationcamelCase vs snake_case : guide des conventions de nommage dans le codecamelCase, snake_case, PascalCase et kebab-case expliqués : à quoi chacun ressemble, où c'est la convention, et comment en choisir un de façon cohérente.ExplicationÉchapper une chaîne pour JSON : trois caractères sont obligatoires, et un seul est un piègeLa RFC 8259 n'impose l'échappement que de trois choses dans une chaîne JSON. Tout le reste est facultatif. Celle qui casse réellement les chaînes de traitement est le demi-surrogate isolé : légal dans un texte JSON, impossible en UTF-8, et remplacé en silence dès que tes données sont écrites.ExplicationXML vers JSON : attributs, répétition et le piège du tableau à un seul élémentDeux documents qui ne diffèrent que par le nombre d'enfants produisent deux formes JSON différentes, et aucun convertisseur ne peut les distinguer sans schéma. Plus ce que celui-ci fait réellement des attributs, du contenu mixte et des espaces — et la seule chose qu'il ne sait toujours pas consigner.

Outils similaires

Sources

Tu as repéré une erreur dans cet article ?