Atelier visuel de regex

Construisez, testez, expliquez et maîtrisez les expressions régulières grâce à des outils visuels, des guides, des exemples et une bibliothèque en constante évolution.

Guide regex

Tester des patterns regex

Une regex n’est fiable que lorsqu’elle a été testée avec des saisies réalistes, des valeurs invalides et des cas limites. Ce guide explique comment construire de bons jeux de tests regex et éviter de faire confiance à un pattern qui ne fonctionne que sur un seul exemple.

Tester les valeurs qui matchent et celles qui ne doivent pas matcher

Un bon jeu de tests regex doit contenir des valeurs qui doivent matcher et des valeurs qui doivent être rejetées.

Tester uniquement des exemples valides peut masquer de gros problèmes, car une regex trop permissive peut accepter presque n’importe quoi.

Pour chaque pattern, préparez des exemples qui prouvent que la regex accepte le format attendu et rejette les saisies mal formées.

Utiliser des saisies réalistes

Les regex échouent souvent lorsqu’elles rencontrent de vraies saisies utilisateur plutôt que des exemples propres et artificiels.

Les utilisateurs peuvent ajouter des espaces, retours à la ligne, accents, majuscules, séparateurs ou valeurs incomplètes.

Tester avec des données réalistes permet de décider si la regex doit être stricte, flexible ou précédée d’une étape de normalisation.

Inclure des cas limites

Les cas limites sont les valeurs proches de la frontière entre ce que la regex doit accepter et ce qu’elle doit refuser.

Testez par exemple la valeur valide la plus courte, la plus longue, une valeur trop courte d’un caractère et une valeur trop longue d’un caractère.

Ces cas révèlent les erreurs de longueur, les ancres manquantes et les quantificateurs trop larges ou trop stricts.

Tester attentivement les ancres

Les ancres changent profondément le comportement d’une regex.

Un pattern sans ancre peut trouver un fragment valide dans une chaîne invalide plus grande, tandis qu’un pattern ancré valide toute la saisie.

Pour les regex de validation, ajoutez toujours des tests avec des caractères en trop avant ou après la valeur attendue.

Tester les flags et les modes

Les flags peuvent modifier complètement le résultat d’une regex.

Le mode insensible à la casse, le mode multiligne ou le mode global peuvent changer ce qui est matché et la manière dont les résultats sont retournés.

Quand vous documentez ou déployez une regex, testez-la avec exactement les mêmes flags que ceux utilisés en production.

Tester séparément extraction et validation

La validation et l’extraction sont deux usages différents.

Une regex de validation vérifie généralement toute la saisie, tandis qu’une regex d’extraction recherche une valeur dans un texte plus grand.

Ne réutilisez pas aveuglément les mêmes tests. Les patterns d’extraction doivent être testés dans des phrases, logs, textes collés et données bruitées.

Tester les remplacements

Lorsqu’une regex sert à remplacer du texte, le match n’est que la moitié du test.

Il faut aussi vérifier le résultat final après remplacement, surtout avec des groupes capturants, lookarounds ou backreferences.

Les tests de remplacement sont importants pour masquer, nettoyer, formater ou transformer du texte sans créer d’erreurs.

Tester dans le moteur regex cible

Les moteurs regex ne supportent pas tous les mêmes fonctionnalités et peuvent interpréter certaines syntaxes différemment.

Un pattern qui fonctionne en PCRE peut ne pas fonctionner en JavaScript, et la syntaxe de remplacement peut varier selon les langages.

Testez toujours les regex destinées à la production dans le même moteur, le même langage et le même environnement que ceux réellement utilisés.

Conserver un jeu de tests réutilisable

Les regex importantes devraient avoir un jeu de tests réutilisable, et pas seulement quelques vérifications manuelles.

Conservez les exemples valides, invalides et les cas limites à côté du code ou de la documentation où la regex est maintenue.

Cela rend les évolutions futures plus sûres, car vous voyez immédiatement si une modification améliore le pattern ou casse un comportement existant.

Pour aller plus loin

📘 Guide recommandé

Limites des regex

Les tests peuvent prouver qu’une regex se comporte correctement sur des exemples connus, mais ils ne transforment pas une regex en système complet de validation.

Certains contrôles nécessitent toujours des règles métier, des parseurs, des algorithmes, des recherches en base de données ou des services externes.

Lire le guide complet →
📘 Guide recommandé

Compatibilité regex

Les tests doivent toujours être réalisés dans le moteur regex cible, car le support de la syntaxe et le comportement des remplacements peuvent varier entre JavaScript, PCRE, Python et d’autres environnements.

Lire le guide complet →
📘 Guide recommandé

Performance des regex

Les tests regex doivent inclure des textes longs et des cas d’échec, car les problèmes de performance apparaissent souvent lorsqu’un pattern semble presque matcher mais échoue finalement.

Lire le guide complet →