🌐 FR

🔣 Testeur d'expressions régulières

Testez des modèles d'expressions régulières en temps réel et consultez les résultats de correspondance. Propose des réglages de drapeaux, la capture de groupes et une bibliothèque de modèles courants.

Modèles courants

GUIDE

En savoir plus

01

1. Notions de base des expressions régulières

Les expressions régulières (Regex) sont des outils puissants permettant de définir, rechercher, extraire et remplacer des motifs dans les chaînes de caractères. Elles peuvent correspondre littéralement (\d pour un chiffre, \w pour un caractère de mot) ou utiliser des caractères spéciaux pour exprimer des motifs complexes. Exemple : ^[a-z]+$ signifie une chaîne composée uniquement de lettres minuscules. ^ indique le début, $ la fin, [a-z] va de a à z, et + signifie un ou plusieurs. Prises en charge par presque tous les langages de programmation et éditeurs de texte, elles sont essentielles pour la validation des saisies, l'analyse de données et le remplacement de texte.

02

2. Collection de modèles courants

Voici des modèles regex fréquemment utilisés en pratique. Email : ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$, Téléphone (France) : ^0[1-9](\s?\d{2}){4}$, URL : ^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b, Date (AAAA-MM-JJ) : ^\d{4}-\d{2}-\d{2}$, Mot de passe (8 caractères minimum, majuscule+minuscule+chiffre+caractère spécial) : ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$. Utilisez ces modèles comme base et adaptez-les à votre projet.

03

3. Explication des drapeaux regex

Les drapeaux regex contrôlent le comportement de la recherche. g(global) : trouve toutes les correspondances, pas seulement la première. i(ignoreCase) : correspondance insensible à la casse (/hello/i correspond à Hello, HELLO). m(multiline) : ^ et $ correspondent au début/à la fin de chaque ligne. s(dotAll) : le point (.) correspond aussi aux caractères de retour à la ligne (\n). u(unicode) : traite correctement l'ensemble de l'Unicode (émojis, etc.). y(sticky) : ne commence la recherche qu'à la position lastIndex. Exemple : /hello/gi trouve tous les « hello » en ignorant la casse.

04

4. Groupes de capture et références arrière

Les parenthèses () créent des groupes qui capturent les portions correspondantes pour un usage ultérieur. Exemple : /(\d{4})-(\d{2})-(\d{2})/ où $1 est l'année, $2 le mois, $3 le jour. Le tableau de résultats de match() en JavaScript inclut les groupes de capture. Les références arrière \1, \2 correspondent au même texte que les groupes précédents. Exemple : /(\w+)\s+\1/ correspond à « hello hello ». Les groupes non capturants (?:) regroupent sans capturer, ce qui améliore les performances.

05

5. Anticipation et rétrospection

L'anticipation (lookahead) et la rétrospection (lookbehind) vérifient un motif avant/après sans l'inclure dans la correspondance. Anticipation positive (?=) : /\d(?=px)/ ne correspond qu'aux chiffres précédant « px » (« 100 » dans « 100px »). Anticipation négative (?!) : /\d(?!px)/ correspond aux chiffres non suivis de « px ». Rétrospection positive (?<=) : /(?<=\$)\d+/ ne correspond qu'aux chiffres suivant « $ » (« 100 » dans « $100 »). Rétrospection négative (?<!) : l'inverse. Fréquemment utilisées pour vérifier la présence de caractères spécifiques dans la validation de mots de passe.

06

6. Optimisation des performances des regex

Des expressions régulières complexes peuvent poser des problèmes de performance. Soyez aussi spécifique que possible ([a-z]+ plutôt que .*). Remplacez les groupes de capture inutiles par des groupes non capturants (?:). Pour réduire le retour arrière (backtracking), utilisez des quantificateurs paresseux (*?, +?) plutôt que gourmands (*, +). Sur de gros textes, les méthodes de chaînes (indexOf, startsWith) peuvent être plus rapides que les regex. Pré-compilez vos regex pour les réutiliser (évitez de créer new RegExp de façon répétée). Attention aux attaques ReDoS (Regular Expression Denial of Service) : n'utilisez jamais directement une saisie utilisateur comme modèle regex.