Testeur Regex en Ligne
Teste tes expressions regulieres en temps reel avec mise en evidence des correspondances.
2 matches found
Pourquoi l'utiliser
Debogage de tes regex instantanement
Temps reel
Les correspondances sont surlignees pendant que tu tapes. Sans rechargement, sans bouton d'envoi.
Groupes de capture
Visualise chaque groupe capture separement avec son index et sa valeur.
Tous les flags
Support complet des flags g, i, m, s du moteur ECMAScript/JavaScript.
Aucune donnee envoyee
Ton texte de test ne quitte jamais ton navigateur. Ideal pour les donnees sensibles.
Comment ça marche
Trois étapes, sans complications
Saisis ton pattern regex
Ecris ton expression reguliere dans le champ de pattern. Choisis les flags : g, i, m, s.
Colle ton texte de test
Introduis le texte sur lequel tu veux tester le pattern. Les correspondances sont surlignees instantanement.
Examine les resultats
Consulte les correspondances completes et les groupes de capture. Ajuste le pattern jusqu'au resultat voulu.
FAQ
Des questions ?
Une expression reguliere (regex ou regexp) est une sequence de caracteres qui definit un pattern de recherche dans un texte. C'est un langage formel derive de la theorie des automates et des langages formels. Avec les regex, tu peux rechercher, valider, extraire et remplacer du texte avec des patterns complexes en une seule ligne de code. Elles sont utilisees dans tous les langages de programmation, les editeurs de texte, les bases de donnees et les outils en ligne de commande.
Les patterns les plus utilises incluent : email (^[\w.+-]+@[\w-]+\.[\w.]+$), URL (https?://[\S]+), telephone (\+?[\d\s\-()]{7,15}), code postal (/^\d{5}(-\d{4})?$/), date ISO (\d{4}-\d{2}-\d{2}), IPv4 (\b(?:\d{1,3}\.){3}\d{1,3}\b) et alphanumerique uniquement ([a-zA-Z0-9]+). Ces patterns sont des points de depart -- en production, ils doivent toujours etre adaptes au format exact attendu.
Les flags modifient le comportement du pattern : g (global) trouve toutes les correspondances au lieu de s'arreter a la premiere ; i (insensitive) ignore la casse ; m (multiline) fait en sorte que ^ et $ correspondent au debut et a la fin de chaque ligne, pas seulement du texte entier ; s (dotAll) fait en sorte que le point (.) corresponde aussi aux sauts de ligne, qu'il exclut par defaut. Les flags peuvent se combiner : /pattern/gim.
Les groupes de capture, definis avec des parentheses (), permettent d'extraire des parties specifiques d'une correspondance. Par exemple, /(\d{4})-(\d{2})-(\d{2})/ sur '2024-03-15' capture trois groupes : annee, mois et jour. Les groupes nommes (?<nom>pattern) permettent l'acces par nom plutot que par index numerique. Les groupes non capturants (?:pattern) groupent sans capturer, utiles pour appliquer des quantificateurs sans creer de groupe.
Le lookahead et le lookbehind sont des assertions de position qui verifient ce qui vient avant ou apres une position sans consommer de caracteres. Lookahead positif (?=pattern) : correspond si suivi de pattern. Lookahead negatif (?!pattern) : correspond si NON suivi de pattern. Lookbehind positif (?<=pattern) : correspond si precede de pattern. Lookbehind negatif (?<!pattern) : correspond si NON precede de pattern. Par exemple, \d+(?= euros) extrait des nombres suivis de ' euros' sans inclure le mot.
Histoire des expressions regulieres : de Kleene 1951 a PCRE
Les expressions regulieres ont ete formulees mathematiquement par Stephen Kleene en 1951 dans son article 'Representation of Events in Nerve Nets and Finite Automata', qui introduisait la notation algebrique pour les langages reguliers. L'operateur etoile de Kleene (*) porte son nom. La premiere implementation logicielle pratique fut celle de Ken Thompson dans l'editeur de texte qed en 1968 pour CTSS (Compatible Time-Sharing System). Thompson implementa les regex avec une construction efficace d'automates finis non deterministes (NFA) garantissant une complexite O(n) en taille de texte.
PCRE (Perl Compatible Regular Expressions) a ete cree par Philip Hazel en 1997 comme bibliotheque C reimplementant la syntaxe des regex de Perl 5. PCRE a ajoute des fonctionnalites absentes des moteurs classiques : lookahead/lookbehind, groupes nommes, references arriere (backreferences) et recursion. PCRE est devenu le moteur de regex de facto pour PHP, Apache, nginx, R et des centaines d'autres applications. ECMAScript (JavaScript) implementa son propre moteur avec une semantique similaire mais differente sur certains points, notamment le support du lookbehind ajoute dans ES2018.
Dans le developpement web moderne, les regex sont indispensables pour la validation de formulaires dans le navigateur, l'extraction de donnees en scraping, les transformations dans les outils de build comme webpack et vite, les regles de routage dans des frameworks comme Express et Next.js, et la recherche avancee dans des editeurs comme VS Code. La difference entre les syntaxes PCRE et ECMAScript affecte principalement : le lookbehind de longueur variable (PCRE le supporte, ECMAScript a des restrictions), les references conditionnelles et la recursion (PCRE uniquement) et quelques sequences d'echappement.