Éditeur

En attente de saisie ou d'exécution de regex…

Actions

?
?
?

À propos Testeur Regex en Ligne

Collez du texte, écrivez un motif regex, basculez les drapeaux et voyez instantanément ce qui correspond. Ce testeur regex utilise le même moteur RegExp que les environnements d'exécution JavaScript modernes, donc ce que vous voyez ici est ce que vous obtiendrez dans votre code frontend, vos scripts Node.js ou votre validation côté serveur. Les groupes de capture nommés, les lookarounds et le mode Unicode sont pris en charge lorsque votre environnement d'exécution les supporte.

Pourquoi utiliser ce testeur d'expressions régulières

  • Correspondance en temps réel avec un mode "en direct" optionnel pour réexécuter au fur et à mesure de la saisie
  • Liste de correspondances structurée avec index de début, index de fin, valeur et groupes de capture nommés
  • Prise en charge complète de la syntaxe RegExp JavaScript/ECMAScript (même moteur que votre environnement d'exécution JS)
  • Contrôles des drapeaux : g, i, m, s, u, y – combinez et expérimentez en toute sécurité
  • Aperçu des performances de base avec le temps d'exécution par test en millisecondes
  • Sortie de résumé en texte uniquement pour une copie/colle rapide dans les tickets, docs ou messages de commit
  • Excellent pour l'apprentissage : prototypage de motifs sans exécuter un projet complet ou une suite de tests
  • Idéal pour les tâches quotidiennes : analyse de logs, validation, extraction d'URL/ID, nettoyage rapide de données
  • La liste des résultats est légèrement limitée pour éviter le gel de l'interface lors de la correspondance avec de grands textes

🔧 Comment utiliser le testeur d'expressions régulières for regex-tester

1

1. Collez ou tapez votre texte de test

Ajoutez le texte que vous voulez parcourir : logs, extraits, fragments CSV, HTML, JSON, tout ce qui est en texte brut.

2

2. Écrivez votre motif d'expression régulière

Entrez l'expression régulière **sans les barres obliques environnantes**. Par exemple : <code>\b\w+@\w+\.\w+</code> pour un motif de type email basique, ou <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> avec des groupes nommés.

3

3. Définissez les drapeaux (g, i, m, s, u, y)

Activez les drapeaux comme <code>g</code> (global), <code>i</code> (insensible à la casse) ou <code>m</code> (multiligne). En arrière-plan, le testeur construit <code>new RegExp(pattern, flags)</code> exactement comme le fait JavaScript.

4

4. Inspectez les correspondances et groupes

Examinez chaque correspondance avec son index, l'index de fin optionnel et les groupes de capture. Les groupes nommés apparaissent sous forme de carte de type JSON pour que vous puissiez les copier dans des fixtures de test, analyseurs ou documentation.

5

5. Copiez le résumé

Utilisez le résumé texte comme rapport rapide : il liste les correspondances avec indices et groupes, prêt à coller dans les tickets, commentaires de revue de code ou aide-mémoire.

Syntaxe des expressions régulières & détails du moteur

Classes de caractères & bases

Blocs de construction de base pris en charge par le moteur RegExp de JavaScript.

MotifSignificationExemple
.N'importe quel caractère sauf les sauts de ligne (sauf si le drapeau <code>s</code> est activé)<code>a.c</code> → correspond à <code>abc</code>
\d, \w, \sChiffres, caractères de mot, espace blanc<code>\d+</code> → <code>123</code>
\D, \W, \SVersions négatives des précédents<code>\S+</code> → séquences sans espace blanc
[abc]Ensemble de caractères<code>[aeiou]</code> → une seule voyelle
[^abc]Ensemble négatif<code>[^0-9]</code> → non-chiffre
^, $Début et fin de l'entrée (ou de la ligne avec <code>m</code>)<code>^Hello</code>, <code>!$</code>

Quantificateurs

Répétition des jetons précédents, avec comportement gourmand et paresseux.

ModèleSignificationExemple
?0 ou 1 fois<code>colou?r</code> → correspond à <code>color</code> et <code>colour</code>
*0 ou plus<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 ou plus<code>\d+</code> → <code>1</code>, <code>123</code>
{n}Exactement n<code>a{3}</code> → <code>aaa</code>
{n,}Au moins n<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}Entre n et m<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

Groupes, Regards & Captures Nommées

Fonctionnalités plus avancées fournies par les moteurs JavaScript modernes.

FonctionnalitéSyntaxeExemple
Groupes de capture(...)<code>(\d{3})-(\d{2})</code> → indicatif + suffixe
Groupes non capturants(?:...)<code>(?:https?|ftp)://</code>
Références arrière\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
Regards avant(?=...), (?!...)<code>\w+(?=! )</code> → mot avant <code>! </code>
Regards arrière*(?<=...), (?<!...)<code>(?<=#)\w+</code> → texte après <code>#</code> (*dans les moteurs modernes)
Groupes nommés(?<nom>...)<code>(?<année>\d{4})</code> → <code>groupes.année</code> dans les résultats

Drapeaux (Options)

Les drapeaux du testeur correspondent directement aux drapeaux RegExp de JavaScript.

DrapeauNomEffet
gGlobalTrouver toutes les correspondances au lieu de seulement la première
iIgnorer la casseCorrespondance insensible à la casse
mMultiligne<code>^</code> et <code>$</code> correspondent aux limites de ligne
sDotAll<code>.</code> correspond également aux sauts de ligne
uUnicodeActive le mode Unicode et les échappements de propriété dans les moteurs modernes
yCollantCorrespond uniquement à l'index actuel (utilisé avec <code>lastIndex</code>)

Performance et Sécurité

Le moteur JavaScript sous-jacent exécute les regex de manière synchrone. Pour maintenir l'interface réactive, le testeur limite le nombre de correspondances collectées (par exemple, les 500 premiers résultats en mode global). Cela aide à éviter de submerger l'interface, mais ne remplace pas les audits de performance complets pour les motifs complexes ou critiques.

Outils Regex en Ligne de Commande

Une fois que votre motif fonctionne ici, vous pouvez réutiliser la même regex ou une similaire dans votre terminal, scripts ou travaux CI :

Linux / macOS

Rechercher avec grep (regex étendue)

grep -E 'pattern' file.txt

Trouver les lignes correspondant à un motif donné

Rechercher et remplacer avec sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

Substitutions par lots dans les fichiers texte

Windows / PowerShell

Recherche regex PowerShell

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

Trouver des motifs SSN de style américain dans les fichiers journaux (exemple)

Remplacement regex PowerShell

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

Remplacements simples basés sur des regex

Applications Pratiques des Regex

Développement Web et Frontend

  • Valider les emails, noms d'utilisateur, slugs ou identifiants personnalisés dans les formulaires
  • Extraire les paramètres de route des URLs ou chemins
  • Prototyper rapidement des motifs pour la validation côté client
// Basic email-like validation
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// Route params: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

Journaux, Données et Backend

  • Analyser les horodatages et niveaux des lignes de journal
  • Normaliser les espaces et nettoyer le texte désordonné
  • Extraire les identifiants, emails ou références du contenu non structuré
// Collapse repeated whitespace
const normalized = text.replace(/\s+/g, ' ').trim();
// Simple log line matcher
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

Nettoyage de Données et Scripts Rapides

  • Supprimer les balises ou attributs HTML indésirables avant l'analyse
  • Extraire toutes les URLs, emails ou identifiants d'un long bloc de texte
  • Préparer les champs de jeu de données pour l'importation dans un autre système

❓ Frequently Asked Questions

Pourquoi mon regex ne correspond à rien ?

Pièges courants : 1) Caractères spéciaux non échappés (comme ., ?, +), 2) Oublier le drapeau g lorsqu'on s'attend à plusieurs correspondances, 3) Absence d'ancres (^, $) ou de limites de mots (\b), 4) Utilisation de fonctionnalités que votre moteur JavaScript ne prend pas encore en charge (comme certaines assertions arrière). Essayez de simplifier le motif et d'ajouter les éléments progressivement.

⏱️Que signifie le temps d'exécution (ms) ?

Chaque exécution est chronométrée avec performance.now(). La valeur est une mesure approximative unique du temps que le regex a pris pour s'exécuter sur l'entrée actuelle. C'est utile pour repérer les motifs manifestement coûteux, mais ce n'est pas un benchmark complet ni une garantie de performance en production.

🔍Quelle est la différence entre le premier match et le mode global ?

Sans le drapeau g, JavaScript ne renvoie que le **premier** match (s'il y en a un). Avec g, le testeur utilise input.matchAll() pour collecter **tous** les matches (limités à un maximum sécurisé), y compris les indices et les groupes de capture. Utilisez le mode global chaque fois que vous vous souciez de multiples occurrences.

🌍Est-ce que cela prend en charge Unicode et les échappements <code>\p{...}</code> ?

Oui, lorsque votre moteur JavaScript le prend en charge. Activez le drapeau u pour passer en mode Unicode, ce qui débloque des fonctionnalités comme \p{Letter} ou \p{Script=Greek} dans les navigateurs modernes et les versions récentes de Node.js.

⚠️Est-ce que cela peut détecter le backtracking catastrophique ?

Le testeur peut signaler les motifs lents via le temps d'exécution, mais il ne peut pas empêcher complètement le backtracking catastrophique : le moteur sous-jacent s'exécute toujours de manière synchrone. Utilisez cet outil comme système d'alerte précoce, puis benchmarkez et examinez soigneusement les motifs complexes dans votre propre base de code.

Pro Tips

Best Practice

Construisez votre regex par petites étapes. Commencez par quelque chose de simple qui correspond, puis ajoutez les ancres, groupes et quantificateurs étape par étape.

Best Practice

Utilisez des groupes de capture nommés (<code>(?<nom>...)</code>) autant que possible. Ils rendent vos matches auto-documentés et beaucoup plus faciles à lire lors des revues de code.

Best Practice

Soyez prudent avec <code>.*</code> et les quantificateurs imbriqués. Ils peuvent provoquer un backtracking important sur les grandes entrées. Rendez les motifs plus spécifiques ou limitez la répétition avec <code>{n,m}</code>.

Best Practice

Lors du débogage, supprimez temporairement le drapeau <code>g</code> et concentrez-vous sur le premier match pour simplifier le modèle mental.

Additional Resources

Other Tools