Testeur Regex, Explicateur et Générateur

Testez, expliquez en langage clair et générez des expressions régulières par l'exemple sans latence. Inclut bouclier anti-ReDoS, groupes et tests unitaires.

Outils en Ligne
STUDIO DE SYNTAXE MODERNE • AST & BOUCLIER ANTI-REDOS
100 % Côté Client • Latence Zéro & Confidentialité Totale
Blocs Visuels en 1 ClicChargez instantanément des modèles vérifiés avec groupes de capture et tests :
//gm
/^([A-Z]{3})-(\d{4})-([A-Z0-9]{1,4})$/gm
Survol Bidirectionnel Actif
Drapeaux (Flags)
Global (g) • Multiligne (m)
Correspondances4
Groupes Actifs3
Temps d’Exécution0.10 ms
État du BouclierAST Valide • Sûr Anti-ReDoS

Explicateur Visuel en Langage Clair

Survolez n’importe quelle pilule visuelle ci-dessous pour surligner ce segment exact dans la barre regex ET les caractères correspondants dans le texte.

^Ancre
Début du texte / de la ligne
([A-Z]{3})#1 Groupe Capture
Groupe de Capture #1: Exactement 3 lettres majuscules (A-Z)
-Littéral
Caractère exact "-"
(\d{4})#2 Groupe Capture
Groupe de Capture #2: Exactement 4 chiffres (0-9)
-Littéral
Caractère exact "-"
([A-Z0-9]{1,4})#3 Groupe Capture
Groupe de Capture #3: Un seul caractère parmi l’ensemble: A-Z0-9 — Répète de 1 à 4 fois
$Ancre
Fin du texte / de la ligne
Correspondance Totale ($&)Groupe $1 (Violet)Groupe $2 (Cyan)Groupe $3 (Ambre)
Survolez une correspondance dans le texte pour inspecter ses index exacts et ses groupes capturés.

Modifiez le texte ci-dessous. Les correspondances complètes brillent en Émeraude ; les Groupes 1, 2 et 3 en Violet, Cyan et Ambre.

Surlignage : Correspondance Totale ($&) et Groupes Capturés
INV-2026-0042 ORD-8841-X SKU-9948-A1 ERR_CONNECTION_TIMEOUT LOG-2025-0099
Résultat Transformé en Direct
[INV] #2026/0042
[ORD] #8841/X
[SKU] #9948/A1
ERR_CONNECTION_TIMEOUT
[LOG] #2025/0099

Inspecteur des Correspondances et Groupes Capturés(4)

#1 "INV-2026-0042"Index: 0–13
$1: INV$2: 2026$3: 0042
#2 "ORD-8841-X"Index: 14–24
$1: ORD$2: 8841$3: X
#3 "SKU-9948-A1"Index: 25–36
$1: SKU$2: 9948$3: A1
#4 "LOG-2025-0099"Index: 60–73
$1: LOG$2: 2025$3: 0099

Comment Utiliser le Testeur Regex, Explicateur et Générateur

Maîtrisez la synthèse par l’exemple, le débogage visuel AST et les tests unitaires en 6 étapes :

01

Saisissez un Regex ou Choisissez un Bloc

Tapez votre expression en haut ou cliquez sur un Bloc Visuel en 1 Clic (ID Alphanumérique, Courriel, URL, IPv4, Date YYYY-MM-DD, Couleur Hex, Mot de Passe Fort).

02

Survolez les Pilules en Langage Clair

Passez la souris sur n’importe quelle pilule colorée sous la barre pour lire sa traduction en français et surligner simultanément le segment regex et le texte capturé.

03

Analysez le Surlignage Multicouche

Dans la Zone de Texte Libre, vérifiez les correspondances complètes en Émeraude et les groupes $1 (Violet), $2 (Cyan) et $3 (Ambre) avec leurs index exacts.

04

Générez des Modèles par l’Exemple

Ouvrez « Générer par l’Exemple », collez 2 à 5 chaînes comme ORD-8841-X et choisissez entre Structure Exacte, Longueur Flexible ou Extracteur de Texte.

05

Exécutez la Suite de Tests Multi-Chaînes

Basculez sur « Suite de Tests Multi-Chaînes » pour valider simultanément vos tests positifs et négatifs avec extraction automatique des groupes en colonnes.

06

Formatez avec $1–$3 et Exportez le Code

Utilisez le tiroir « Remplacer / Formater » pour transformer vos chaînes en direct et exportez le code prêt pour JS/TS, Python, PHP, Go ou C#.

Questions Fréquentes sur les Expressions Régulières

Conseils pratiques sur les caractères accentués, les séparateurs de milliers, les lookaheads et la sécurité :

Q :Comment capturer correctement les mots contenant des accents (é, è, ê, à), la cédille (ç) ou les ligatures (œ, æ) ?

La classe abrégée \w se limite strictement aux caractères ASCII de base ([A-Za-z0-9_]) et s’arrête dès qu’elle rencontre une lettre accentuée. Pour analyser du texte rédigé en français sans tronquer les mots, utilisez une classe explicite comme [a-zA-ZÀ-ÿœæŒÆ]+ ou activez le drapeau Unicode (u) avec la propriété \p{L}+.

Q :Pourquoi les montants formatés avec une espace comme séparateur de milliers (ex. 12 500,00) échouent-ils souvent avec un espace simple ?

Dans les documents comptables et les exports bancaires, les milliers sont fréquemment séparés par une espace insécable ou une espace fine plutôt que par un espace standard. Au lieu de taper un espace littéral dans votre motif, utilisez \s dans un groupe non capturant : \d{1,3}(?:[\s.]\d{3})*,\d{2}. Vous capterez ainsi tous les formats de montants sans faux négatifs.

Q :Comment les pilules visuelles aident-elles à repérer rapidement une erreur de parenthèse ou de quantificateur ?

Lorsqu’une expression régulière devient longue, il est difficile de voir sur quoi porte exactement un + ou un {2,4}. Le découpage en pilules traduit chaque brique en français clair (par exemple \d+ en « Un ou plusieurs chiffres (0-9) ») et le survol à la souris met simultanément en surbrillance le jeton dans la barre et les caractères capturés dans votre texte.

Q :Quelle est la différence concrète entre un Lookahead (?=...) et un groupe de capture classique (...) ?

Un groupe classique (...) consomme les caractères du texte et les enregistre dans $1, $2, etc. Un Lookahead positif (?=...) vérifie simplement qu’une condition est présente plus loin dans la chaîne sans avancer le curseur de lecture. C’est la technique idéale pour vérifier qu’un mot de passe contient au moins un chiffre (?=.*\d) et un symbole (?=.*[!@#$%^&*]) en une seule passe.

Q :Comment restructurer des journaux (logs) ou des dates à la volée avec l’outil « Remplacer / Formater » ?

Dès que votre motif contient des groupes — numérotés comme (\d{4})-(\d{2})-(\d{2}) ou nommés comme (?<year>\d{4}) — vous pouvez les réassembler librement dans le panneau de substitution. Par exemple, saisir $<day>/$<month>/$<year> ou [$1] #$2/$3 transforme instantanément toutes les occurrences trouvées sans écrire une seule ligne de script.

Q :Comment le disjoncteur à 150 ms évite-t-il le blocage du navigateur (ReDoS) tout en gardant mes données confidentielles ?

Des quantificateurs imbriqués comme (a+)+ peuvent provoquer un nombre exponentiel d’essais (2^n) lorsqu’une ligne contient un caractère inattendu en fin de chaîne. Notre analyseur repère ces structures dangereuses et coupe automatiquement l’exécution au-delà de 150 ms. L’ensemble du traitement s’exécute à 100 % en local dans votre navigateur, sans aucun envoi réseau.

Complexité Backtracking NFA vs. Borne Linéaire
TReDoS (n) = O(2n) vs. Tsûr (n) = O(n · |Σ|) ≤ 150 ms
Taux de Réussite de la Suite Multi-Chaînes
Psuite =
Mpos + Rneg Ntotal
· 100%
Inférence des Quantificateurs par l’Exemple
Qseg (k) = Ck{min(|si,k|), max(|si,k|)}
  • TReDoS(n): Croissance exponentielle des étapes lors de quantificateurs imbriqués tels que (a+)+ sur une longueur n, bloquée à 150 ms.
  • Psuite: Pourcentage de tests unitaires réussis combinant correspondances positives (Mpos) et rejets négatifs (Rneg).
  • Qseg(k): Intervalle de répétition déduit automatiquement pour le segment k selon la longueur minimale et maximale des échantillons.

Qu'est-ce que Testeur Regex, Explicateur et Générateur ?

Relire une expression régulière écrite il y a plusieurs mois ressemble souvent à du déchiffrage : une parenthèse mal fermée ou un point non échappé suffit à fausser tout un filtre. Ce Testeur Regex, Explicateur en Langage Clair et Générateur de Modèles a été conçu pour rendre chaque étape visuellement limpide. Comme l’intégralité de l’analyse s’exécute localement dans votre navigateur, vous pouvez tester vos journaux applicatifs, vos règles de validation ou vos exports comptables en toute confidentialité, sans qu’aucune donnée ne transite sur le réseau.

Pourquoi l’approche visuelle change la façon de concevoir un motif

Plutôt que de modifier à tâtons une chaîne comme ^([A-Z]{3})-(\d{4})-([A-Z0-9]{1,4})$, vous disposez ici de quatre outils complémentaires :

  • Découpage en pilules explicatives : Chaque brique du motif est traduite en français clair (par exemple, \d+ devient « Un ou plusieurs chiffres (0-9) »). Survolez une pilule à la souris pour surligner simultanément ce segment dans la barre supérieure et les caractères capturés dans votre texte.
  • Synthèse automatique par l’exemple : Collez simplement 2 à 5 exemples concrets (comme ORD-8841-X et ORD-1029-B) pour générer le motif correspondant sans compter les caractères à la main.
  • Tableau de tests positifs et négatifs : Vérifiez simultanément que vos chaînes valides sont acceptées (+) et que les cas erronés comme 2026-13-01 sont bien rejetés (–), avec une colonne dédiée à chaque groupe de capture ($1, $2).
  • Disjoncteur anti-blocage à 150 ms (Bouclier ReDoS) : Repère immédiatement les répétitions imbriquées risquées du type (a+)+ et interrompt toute boucle excessive avant qu’elle ne fige votre onglet.

Modèles Pratiques pour Accents, Montants avec Espace et Journaux Système

Besoin ConcretModèle Regex ConseilléPourquoi Ce Choix Est SûrExemple de Capture
Mots avec accents, ç et œ[a-zA-ZÀ-ÿœæŒÆ]+Inclut toutes les lettres accentuées et ligatures que la classe abrégée \w+ ignore par défaut.Référence, aperçu, œuvre, créé
Montants avec espace de milliers\d{1,3}(?:[\s.]\d{3})*,\d{2}Utilise \s pour accepter aussi bien l’espace fine ou insécable que l’espace standard.12 500,00 / 1.250,50 / 85,00
Niveau de sévérité de journal^\[(?<niveau>INFO|WARN|ERR)\]Extrait l’étiquette exacte en début de ligne dans le groupe nommé $<niveau>.[WARN] Délai dépassé → "WARN"
Masquage du dernier octet IPv4(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})Sépare les 4 octets pour permettre l’anonymisation rapide via $1.$2.$3.xxx.192.168.10.45 → 192.168.10.xxx
Chaîne entre guillemets français«\s*([^»]+?)\s*»Capture le texte interne en ignorant les espaces superflus autour des chevrons.« Module actif » → $1 = "Module actif"

Cas Pratique : Anonymiser des Journaux d’Accès Avant un Audit Technique

Imaginons que vous deviez partager un extrait de journal d’accès pour diagnostiquer une panne, contenant des lignes telles que 2026-11-02 | IP=192.168.10.45 | Ref=INV-2026-0042, mais que vous souhaitiez masquer le dernier segment de chaque adresse IPv4 et reformater la date. En utilisant le modèle (\d{4})-(\d{2})-(\d{2})\s*\|\s*IP=(\d{1,3}\.\d{1,3}\.\d{1,3})\.\d{1,3}\s*\|\s*Ref=(INV-\d{4}-\d{4}) et le modèle de remplacement [$3/$2/$1] IP=$4.xxx ($5) dans l’onglet Remplacer / Formater, vous obtenez instantanément [02/11/2026] IP=192.168.10.xxx (INV-2026-0042), prêt à être copié en toute sécurité.

Histoire et Origine

Avant de devenir l’outil quotidien des développeurs, les expressions régulières sont nées dans les années 1950 au croisement des mathématiques et de la logique formelle. Elles servaient alors à décrire sur le papier comment un automate à états finis passe d’un état à un autre en lisant une suite de symboles.

La rencontre avec l’informatique pratique a eu lieu une vingtaine d’années plus tard, lorsque les premiers éditeurs de texte en mode console ont intégré un moteur capable de compiler une expression en automate directement en mémoire vive. Cette idée a donné naissance aux utilitaires de recherche en ligne de commande, puis à la norme POSIX et à la bibliothèque PCRE. Aujourd’hui, les moteurs JavaScript modernes vont encore plus loin en fournissant la position exacte de chaque groupe capturé tout en nécessitant des garde-fous contre le backtracking exponentiel.