fantasticode.fr
Image default

Comprendre les expressions régulières (regex) en programmation

En bref

Une expression régulière — regex pour les intimes — est un motif de recherche : au lieu de chercher un texte exact, tu décris une forme (« deux chiffres, un slash, deux chiffres », « des lettres, un arobase, des lettres, un point, des lettres ») et la machine trouve tout ce qui correspond. C’est l’avis de recherche du texte : on ne donne pas la photo d’un suspect précis, on donne son signalement — et tout individu conforme est signalé. Une poignée de symboles suffit à décrire presque toutes les formes : les classes (\d pour un chiffre, \w pour une lettre), les quantités (+ pour « un ou plusieurs », * pour « zéro ou plusieurs », {2} pour « exactement deux »), les positions (^ début, $ fin) et le point, joker qui vaut n’importe quel caractère. Tous les langages les comprennent — valider un email, extraire des dates, nettoyer un fichier : trois lignes de regex remplacent trente lignes de code, à condition de rester lisible.

Il existe un mini-langage caché dans tous les autres — un alphabet cryptique de barres obliques et de symboles qui fait passer les débutants pour des sorciers : ^\d{2}/\d{2}$. Comprendre les expressions régulières — leur logique de motif, leurs symboles essentiels, leur bon usage — transforme ce grimoire en outil du quotidien : ce guide s’y emploie sans jargon, dans la lignée de notre guide complet pour apprendre à coder.

Les regex, expliquées avec les mains

Ta fonction de recherche habituelle travaille au mot exact : cherche « 12/03 », trouve « 12/03 » — et rien d’autre. Mais comment trouver toutes les dates d’un document, sans connaître leurs valeurs ? Il faudrait pouvoir dire à la machine : « cherche deux chiffres, une barre, deux chiffres » — décrire la forme, pas le contenu. C’est exactement ce qu’est une expression régulière : un avis de recherche. Le commissariat ne diffuse pas la photo d’un inconnu — il diffuse un signalement (« environ 1m80, veste rouge, accent du sud ») et tout individu conforme est repéré. La regex est ce signalement, appliqué au texte : une description de motif que la machine confronte à chaque portion du document, en signalant toutes les correspondances.

D’où les trois grands services qu’elles rendent, partout, dans tous les métiers du code. Valider : cette saisie ressemble-t-elle à un email, un code postal, un numéro de téléphone ? — le contrôle de formulaire par excellence. Extraire : sortir toutes les dates, tous les montants, toutes les adresses d’un texte brut — l’outil roi du nettoyage de données. Remplacer : transformer d’un coup tous les « M. » en « Monsieur », toutes les doubles espaces en simples — le chercher-remplacer devenu intelligent. Un détail d’histoire éclaire leur omniprésence : les regex sont nées avec l’informatique elle-même et se sont glissées partout — dans les langages, les éditeurs de texte (ton chercher-remplacer a un mode regex, va voir), les outils en ligne de commande. Un seul alphabet appris, utilisable à vie, sur toute la surface du métier — peu d’investissements du vocabulaire technique rapportent autant.

À quoi ça ressemble dans le code

L’alphabet essentiel d’abord — huit symboles couvrent l’immense majorité des besoins. Les classes : \d désigne un chiffre, \w une lettre ou un chiffre, \s un espace, et le point est le joker absolu — n’importe quel caractère. Les quantités, accolées au symbole précédent : + signifie « un ou plusieurs », * « zéro ou plusieurs », ? « zéro ou un », {2} « exactement deux ». Les positions : ^ ancre au début du texte, $ à la fin. Assemble et lis : \d{2}/\d{2}/\d{4} — « deux chiffres, barre, deux chiffres, barre, quatre chiffres » — une date française ; ^\w+@\w+\.\w+$ — « du début à la fin : des caractères, un arobase, des caractères, un point (échappé par \ car le point nu est un joker), des caractères » — la silhouette d’un email, version simplifiée. Tu sais désormais lire le grimoire : chaque regex n’est qu’une phrase de signalement, symbole par symbole.

Côté langages, deux dialectes pour la même langue. En Python, le module re fait tout : re.search(motif, texte) trouve la première correspondance, re.findall les extrait toutes, re.sub remplace — avec le motif écrit dans une chaîne préfixée r »… » (le r protège les barres obliques inverses). En JavaScript, la regex est un citoyen natif, écrite entre barres obliques : /\d{2}\/\d{2}/ — et les méthodes texte.match(motif), motif.test(texte) et texte.replace(motif, remplacement) font le service ; tu les croiseras dès la validation de tes premiers formulaires, prolongement direct des bases du JavaScript comme les bases Python mènent au module re. Et le conseil d’atelier qui change tout : les testeurs de regex en ligne — tu tapes le motif, colles ton texte, et la correspondance s’illumine en direct, symbole par symbole expliqué. C’est LE bon outil d’apprentissage : personne, pas même les anciens, n’écrit une regex non triviale sans son bac à sable.

Les pièges classiques (et comment les éviter)

Piège 1 : le point pas échappé. Vouloir chercher un point littéral (« fin de phrase. ») en écrivant . — le joker — fait correspondre n’importe quoi ; le remède : \. pour le point réel, et le même réflexe d’échappement pour tous les symboles spéciaux qu’on veut au sens propre (\+, \?, \$). Piège 2 : le motif glouton. Les quantificateurs prennent par défaut le plus long morceau possible — « tout entre guillemets » avec « .* » avale d’un coup du premier guillemet du texte au dernier ; le remède : la version sobre *? (« le plus court possible »), et surtout le test visuel systématique au bac à sable avant toute mise en service.

Piège 3 : la regex cathédrale. Le motif de quatre lignes qui valide « parfaitement » les emails est illisible, immaintenable — et souvent faux quand même. Le remède est une philosophie : la regex vérifie une silhouette raisonnable, pas la vérité absolue (la vraie validation d’un email, c’est d’y envoyer un message) — reste simple, commente le motif, et découpe en plusieurs vérifications si besoin. Piège 4 : la regex partout. Extraire des données d’un JSON ou du HTML à coups de motifs est le bricolage classique qui finit en larmes — ces formats structurés ont leurs analyseurs dédiés (JSON.parse, les parseurs HTML) ; la regex règne sur le texte libre, pas sur les formats à grammaire. Voilà le grimoire apprivoisé : un signalement, huit symboles, un bac à sable — et des heures de traitement de texte économisées à vie. Les exercices Python te donneront des textes à fouiller ; ton prochain formulaire web fera le reste, du côté du parcours JavaScript et de ses exercices.

Questions fréquentes

C’est quoi une expression régulière, en une phrase ?

Un motif de recherche qui décrit une forme de texte plutôt qu’un texte exact — « deux chiffres, une barre, deux chiffres » — que la machine confronte au document pour trouver, valider, extraire ou remplacer toutes les portions conformes. Un avis de recherche appliqué au texte, compris par tous les langages.

À quoi servent les regex concrètement ?

Aux trois gestes du quotidien : valider des saisies (cet email a-t-il une forme plausible ?), extraire des données d’un texte brut (toutes les dates, tous les montants) et remplacer intelligemment (normaliser des espaces, des abréviations). Trois lignes de regex y remplacent souvent des dizaines de lignes de code.

Que signifient \d, + et ^ dans une regex ?

\d désigne un chiffre (une classe de caractères), + signifie « un ou plusieurs » du symbole précédent (une quantité), et ^ ancre le motif au début du texte (une position). Avec \w (lettre ou chiffre), *, {n}, $ et le point-joker, tu tiens l’alphabet qui couvre la grande majorité des besoins.

Comment apprendre et tester ses expressions régulières ?

Avec un testeur en ligne : on y écrit le motif, on colle un texte d’essai, et les correspondances s’illuminent en direct avec l’explication de chaque symbole. C’est l’outil d’apprentissage et de travail standard — même les développeurs confirmés y valident leurs motifs avant de les mettre en service.

Sources

Cet article a une vocation informative et pédagogique. Les plateformes, outils et formations éventuellement cités le sont à titre d’exemple ; compare plusieurs options avant de t’engager ou de payer.