Testeur et débogueur de regex gratuit

Testez et déboguez vos expressions régulières en temps réel avec des explications. Gratuit, rapide et entièrement dans votre navigateur, sans inscription.

Mis à jour le

Popular
Share:
Lire le guide: How to Test a Regular Expression (Regex)
Home/Code Tools/Regex Tester

Regex Tester

Test and debug regular expressions with real-time highlighting, capture group colors, pattern explanation, code generation for 10 languages, multi-line testing, and step-by-step debugger.

Regular Expression

//g
Flags:

Common Patterns Library
28

Test Input

Quick Reference (Cheat Sheet)

Privacy First: All processing happens locally in your browser. Your patterns and test data are never sent to any server. History is stored in your browser's localStorage.

Questions Fréquentes

Qu'est-ce que le Regex Tester ?

Le Regex Tester est un outil en ligne gratuit qui vous permet de tester et de déboguer des expressions régulières en temps réel, avec mise en évidence des correspondances et explications.

Le Regex Tester est-il gratuit ?

Oui, il est entièrement gratuit et ne nécessite aucune inscription. Toute la recherche de correspondances s'effectue côté client, dans votre navigateur.

Explique-t-il le motif de l'expression régulière ?

Oui, le Regex Tester fournit des explications lisibles de vos motifs d'expressions régulières pour vous aider à les comprendre et à les déboguer.

Mes données sont-elles en sécurité avec cet outil ?

Absolument. Le Regex Tester & Debugger traite tout côté client, dans votre navigateur. Aucune donnée n'est téléchargée ni stockée sur un serveur. Votre contenu reste à tout moment privé sur votre appareil.

Le Regex Tester & Debugger fonctionne-t-il sur les appareils mobiles ?

Oui, le Regex Tester & Debugger est entièrement responsive et fonctionne sur les smartphones et les tablettes. Vous pouvez l'utiliser sur n'importe quel appareil doté d'un navigateur web moderne, sans aucune application à télécharger.

Dois-je créer un compte pour utiliser cet outil ?

Aucun compte ni inscription n'est nécessaire. Ouvrez simplement le Regex Tester & Debugger dans votre navigateur et commencez à l'utiliser immédiatement. Il n'y a ni inscription obligatoire ni restriction d'utilisation.

Comment utiliser le Regex Tester & Debugger ?

Saisissez simplement votre contenu dans le champ prévu, ajustez les paramètres selon vos préférences, et l'outil le traitera instantanément. Vous pouvez ensuite copier le résultat dans le presse-papiers ou le télécharger.

Quels navigateurs sont pris en charge ?

Le Regex Tester & Debugger fonctionne dans tous les navigateurs modernes, y compris Chrome, Firefox, Safari, Edge et Opera. Pour une expérience optimale, utilisez la dernière version de votre navigateur préféré.

À quoi servent les indicateurs (flags) g, i, m, s, u et y en regex ?

Les indicateurs modifient la façon dont le moteur applique votre pattern. Le flag g (global) trouve toutes les correspondances au lieu de s'arrêter à la première. Le flag i (ignore case) ignore la casse des lettres. Le flag m (multiligne) fait s'ancrer les symboles ^ et $ à chaque ligne plutôt qu'à la chaîne entière uniquement. Le flag s (dotall) permet au point de matcher aussi les sauts de ligne. Le flag u (unicode) active la gestion complète d'Unicode et une analyse plus stricte, ce qui compte pour les emojis et les textes non latins. Le flag y (sticky) ne matche qu'à partir de la position courante du moteur, ce qui est utile pour découper une entrée morceau par morceau. Les indicateurs peuvent se combiner librement, donc gi trouve toutes les correspondances tout en ignorant la casse. Cet outil expose les six sous forme de bascules, afin que vous puissiez les activer et les désactiver et observer en direct l'évolution des correspondances surlignées et de leur nombre pour voir exactement l'effet de chacun sur votre résultat.

Qu'est-ce que le backtracking catastrophique et comment l'éviter ?

Le backtracking catastrophique survient quand un pattern comporte des quantificateurs imbriqués ou qui se chevauchent, comme (.*)+ ou (a+)+, forçant le moteur à essayer un nombre exponentiel de façons de matcher avant d'abandonner. Sur une chaîne courte et bien formée, tout semble aller, mais sur une entrée légèrement plus longue ou mal formée, le temps de traitement peut exploser, passant de quelques microsecondes à plusieurs secondes, bloquant de fait votre programme. Vous l'évitez en rendant les quantificateurs non chevauchants, en utilisant des classes de caractères plus précises plutôt que des motifs larges comme .*, et en ancrant les patterns quand c'est possible. Cet outil signale les constructions à risque au fur et à mesure de votre saisie et affiche un badge de temps d'exécution allant de Rapide à Très lent, afin que vous puissiez repérer un pattern dangereux avant qu'il n'atteigne la production. Le débogueur pas à pas, limité à 100 étapes pour qu'un pattern incontrôlable ne puisse pas bloquer la page, vous permet aussi d'observer comment le moteur parvient à chaque correspondance. Collez votre expression ci-dessus et surveillez le badge pour confirmer qu'elle reste rapide.

Quelle est la différence entre un groupe de capture et un groupe non capturant ?

Un groupe de capture, écrit avec de simples parenthèses comme (\d{4}), regroupe une partie du pattern et mémorise ce qu'il a matché afin que vous puissiez le référencer plus tard par son numéro, ou par son nom avec la syntaxe (?<year>\d{4}). Un groupe non capturant, écrit (?:...), regroupe une portion du pattern pour appliquer un quantificateur ou une alternance sans enregistrer le texte matché, ce qui garde une numérotation de groupes propre et se révèle légèrement plus efficace. Utilisez les groupes capturants quand vous devez extraire ou réutiliser une valeur dans un remplacement ; réservez les groupes non capturants à la structure. Les deux types peuvent être imbriqués, et les quantificateurs s'appliquent aux deux, si bien que (?:ab)+ répète la paire sans la capturer. Cet outil liste chaque groupe de capture, numéroté ou nommé, avec la valeur extraite de votre texte de test, en la surlignant dans la correspondance, afin que vous puissiez vérifier que vos groupes extraient exactement les données attendues avant de les intégrer dans votre code.

Comment utiliser des références arrière comme $1 dans rechercher-remplacer ?

Les références arrière permettent à un remplacement de réutiliser le texte capturé par les groupes de votre pattern. Dans les chaînes de remplacement, on référence le premier groupe de capture par $1, le deuxième par $2, et ainsi de suite, si bien qu'un pattern comme (\w+)@(\w+) avec le remplacement $2.$1 inverse les deux moitiés d'un jeton autour de l'arobase. C'est ainsi que l'on reformate des dates, réordonne des noms ou réécrit des URL sans retaper le contenu matché. Les groupes nommés peuvent aussi être référencés selon la syntaxe prise en charge par votre langage cible. Notez qu'à l'intérieur même du pattern, une référence arrière comme \1 matche plutôt le même texte que le groupe a déjà capturé, ce qui diffère de l'usage de $1 dans le remplacement. Le mode rechercher-remplacer de cet outil prévisualise en direct le texte substitué à mesure que vous modifiez la chaîne de remplacement, avec $1, $2, etc. résolus exactement comme dans du vrai code. Passez à l'onglet remplacer ci-dessus pour tester votre substitution avant de la coller dans votre projet.

Pourquoi la même regex se comporte-t-elle différemment en Python ou en Java ?

Les moteurs de regex ne sont pas identiques d'un langage à l'autre. Cet outil exécute le moteur JavaScript natif (ECMAScript), le même que celui utilisé dans Node et les navigateurs, mais le module re de Python, la classe Pattern de Java, le PCRE de PHP, le RE2 de Go et d'autres diffèrent sur la prise en charge du lookbehind, la syntaxe des groupes nommés, la gestion des indicateurs en ligne, et la façon de passer les flags. Un pattern qui fonctionne ici peut nécessiter de légers ajustements ailleurs, notamment autour d'Unicode et des références arrière. Les moteurs basés sur RE2 comme celui de Go rejettent même carrément certaines constructions pour garantir un temps linéaire. C'est pourquoi le générateur de code intégré produit votre expression finalisée pour JavaScript, TypeScript, Python, Java, PHP, Go, Ruby, C#, Rust et Swift, en traduisant les indicateurs dans l'idiome de chaque langage, comme re.IGNORECASE ou Pattern.CASE_INSENSITIVE, et en signalant les particularités propres à chacun. Le workflow le plus sûr consiste à valider d'abord ici sur un texte d'exemple représentatif, car un pattern qui semble correct peut tout de même manquer des cas limites dans un autre moteur. Ajustez votre pattern ci-dessus, puis copiez le code généré pour votre langage cible afin d'éviter les mauvaises surprises liées aux différences de moteurs.

Embed This Tool

Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.

Copy & paste this HTML
<iframe src="https://getthetoolbox.com/embed/code-tools-regex-tester" title="Free Regex Tester & Debugger — The Toolbox" width="100%" height="320" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/code-tools/regex-tester?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free Regex Tester & Debugger</a> by The Toolbox</p>

À propos du testeur et débogueur d'expressions régulières

Le testeur et débogueur d'expressions régulières est un atelier en ligne gratuit pour construire et déboguer des regex. Saisissez un pattern, collez un texte d'exemple, et l'outil met en surbrillance chaque correspondance en temps réel, liste les groupes de capture extraits et signale les erreurs de syntaxe dès qu'elles apparaissent. Il est conçu pour les développeurs, les data engineers et toute personne qui a déjà fixé un mur de barres obliques inverses en se demandant pourquoi un pattern matche tout ou rien.

Les expressions régulières sont notoirement difficiles à lire, alors l'outil fait bien plus que matcher. Il explique ce que fait votre pattern, vous avertit des constructions susceptibles de bloquer le moteur, et génère du code prêt à coller dans dix langages afin que l'expression peaufinée ici s'intègre directement dans votre projet.

Tout s'exécute dans votre navigateur avec le moteur d'expressions régulières natif de JavaScript (la même implémentation ECMAScript que celle utilisée par votre code dans Node et le navigateur). Rien de ce que vous saisissez — pattern, texte de test ou remplacement — n'est envoyé ou stocké sur un serveur. Aucune inscription, aucune limite d'utilisation.

Comment tester et déboguer un pattern

Saisissez votre expression et activez les indicateurs (flags) parmi les six disponibles pour ajuster son comportement :

  • g (global) — trouve toutes les correspondances au lieu de s'arrêter à la première.
  • i (ignore case) — ignore la casse des lettres.
  • m (multiligne) — fait ancrer ^ et $ à chaque ligne, et non plus seulement à la chaîne entière.
  • s (dotall) — permet à . de matcher aussi les sauts de ligne.
  • u (unicode) — active la gestion complète d'Unicode et une analyse plus stricte.
  • y (sticky) — ne matche qu'à partir de la position courante du moteur.

Au fil de votre saisie, les correspondances sont surlignées dans le texte de test et chaque groupe de capture, numéroté ou nommé, est listé avec sa valeur. Un badge de temps d'exécution qualifie chaque essai, de Rapide à Très lent, et un débogueur pas à pas retrace comment le moteur parvient à chaque correspondance (limité à 100 étapes pour qu'un pattern incontrôlable ne puisse pas bloquer la page). Si vous écrivez quelque chose comme (.*)+, l'outil vous avertit d'un risque de backtracking catastrophique — des quantificateurs imbriqués qui peuvent faire exploser le temps de traitement sur certaines entrées.

Remplacer, tester en masse et exporter

Un mode rechercher-remplacer prévisualise les substitutions en direct, avec des références arrière comme $1 fonctionnant exactement comme dans votre code. L'onglet multiligne permet de tester un même pattern sur de nombreuses lignes à la fois — pratique pour valider une colonne d'e-mails ou des lignes de logs. Une fois l'expression au point, le générateur de code la produit pour JavaScript, TypeScript, Python, Java, PHP, Go, Ruby, C#, Rust et Swift, avec la traduction correcte des indicateurs (re.IGNORECASE pour Python, Pattern.CASE_INSENSITIVE pour Java, etc.) et des notes sur les particularités de chaque langage. Vous pouvez copier n'importe quel résultat, le télécharger, ou partager toute la configuration sous forme d'URL qui recharge le pattern, les indicateurs et le texte de test. Les patterns récents sont conservés dans le stockage local de votre navigateur pour que vous puissiez y revenir plus tard.

Une bibliothèque de patterns prêts à l'emploi

Si vous préférez partir d'un exemple qui fonctionne déjà, la bibliothèque intégrée propose une trentaine de patterns validés couvrant les cas les plus fréquents : adresses e-mail, URL HTTP/HTTPS, numéros de téléphone américains et internationaux, adresses IPv4 et IPv6, adresses MAC, dates ISO et américaines, heures au format 24 heures, couleurs hexadécimales, UUID, versions sémantiques, règles de mot de passe robuste, formats de carte bancaire, slugs d'URL, liens Markdown, et plus encore. Chacun est accompagné d'une description et d'un texte d'exemple pour que vous puissiez voir la correspondance avant de l'adapter. Ce sont des points de départ fiables, mais testez toujours avec vos propres données — une regex « e-mail valide », par exemple, ne pourra jamais correspondre parfaitement à la spécification des e-mails, et la plupart des patterns en production sont des compromis délibérés entre rigueur et praticité.

Pourquoi un testeur est indispensable

Une expression régulière qui semble correcte peut discrètement matcher trop de choses ou passer à côté de cas limites, et un seul quantificateur mal placé peut transformer un pattern rapide en un pattern qui se bloque sur des données réelles. Tester sur des échantillons représentatifs avant la mise en production permet de repérer ces deux problèmes. Collez votre pattern et un texte ci-dessus pour voir exactement ce qu'il matche, comprendre pourquoi, et intégrer le résultat dans votre code.