Regex Tester

Testeur de Regex

Créez et testez des expressions régulières avec coloration des correspondances en direct, groupes de capture et mode remplacement. Saveur JavaScript, s'exécute entièrement dans votre navigateur.

regex JavaScript / ECMAScript (le même moteur que votre navigateur utilise pour le RegExp natif). C'est un sur-ensemble strict de POSIX et recouvre largement Python re, Java Pattern et PCRE pour les fonctionnalités courantes. Différences à surveiller : JavaScript prend en charge lookahead/lookbehind, les groupes nommés (via /(?...)/), et les drapeaux /u et /y. Il ne prend PAS en charge les quantificateurs possessifs (a++, a*+), les groupes atomiques ((?>...)) ni les groupes branch-reset — ceux-ci sont propres à PCRE.

Non. Tout l'outil est du JavaScript dans cette page. La compilation, la correspondance et le remplacement du motif s'exécutent tous dans votre navigateur via le constructeur RegExp natif. Ouvrez DevTools → Network et regardez — aucune requête n'est envoyée pendant la saisie. Sûr pour coller des regex correspondant aux journaux de production, e-mails clients ou tout ce que vous ne voudriez pas qu'un outil serveur enregistre.

/ /
Correspondances
Explication
Aide-mémoire regex
. N'importe quel caractère (sauf saut de ligne; avec le drapeau /s, aussi le saut de ligne)
\d N'importe quel chiffre (0-9)
\D N'importe quel caractère non numérique
\w Caractère de mot (a-z, A-Z, 0-9, _)
\W Caractère non-mot
\s Espace blanc (espace, tabulation, saut de ligne)
\S Caractère non-blanc
\b Limite de mot
^ $ Début / fin de chaîne (ou de ligne, avec le drapeau /m)
* Zéro ou plusieurs de l'élément précédent
+ Un ou plusieurs de l'élément précédent
? Zéro ou un de l'élément précédent (optionnel)
{n,m} Entre n et m de l'élément précédent
(...) Groupe de capture — enregistré dans $1, $2, …
(?:...) Groupe sans capture — utile pour l'alternance sans capturer
(?<n>...) Groupe de capture nommé — référencé par $<n>
[abc] Classe de caractères — l'un des caractères a, b ou c
[^abc] Classe de caractères négative — tout caractère sauf a, b, c
a|b Alternance — correspond à a ou b
(?=...) lookahead positif — suivi de
(?!...) lookahead négatif — non suivi de
(?<=...) lookbehind positif — précédé de
(?<!...) lookbehind négatif — non précédé de
$1 $<n> backreference dans la chaîne de remplacement — numérotée ou nommée

Pourquoi iKit Regex Tester

Conçu pour les développeurs qui veulent un terrain de jeu regex propre et rapide, sans publicités, popups ni traceurs tiers des outils anciens.

Coloration des correspondances en direct

Saisissez votre motif et voyez chaque correspondance surlignée dans la chaîne de test en temps réel. Les capture group sont listés à côté avec leur plage d'index et leur contenu.

Correspondance + remplacement dans un seul outil

Passez en mode Remplacement pour prévisualiser le résultat de String.replace, avec prise en charge complète des backreference numérotées $1/$2, des groupes nommés $, et de $& pour la correspondance entière.

Les six drapeaux JavaScript

Activez global, insensible à la casse, multiligne, dotall, unicode et sticky comme des puces — les mêmes drapeaux que le RegExp natif, aucune surprise lors du portage de votre motif vers le code.

Préréglages de motifs courants

Préréglages en un clic pour e-mail, URL, IPv4, téléphone, date, couleur hexadécimale et UUID — chacun avec une chaîne de test exemple pour voir exactement ce qu'ils correspondent.

Aide-mémoire intégré

Grille de référence rapide pour les classes de caractères, quantificateurs, ancres, groupes et lookarounds — repliable pour qu'elle soit là quand vous en avez besoin, masquée sinon.

Confidentialité par conception

Le motif, la chaîne de test et le remplacement restent tous dans votre navigateur. Vérifiable dans DevTools → Network : aucune requête envoyée pendant la saisie. Sûr pour les journaux de production et les données client.

Comment fonctionne réellement la correspondance regex

Les expressions régulières ressemblent à du bruit, mais le moteur derrière elles est simple.

  1. 1

    Compiler le motif

    Quand vous écrivez /foo/ en JavaScript ou appelez new RegExp('foo'), le moteur analyse votre motif en un automate interne — une machine à états qui sait parcourir le texte d'entrée. La compilation est unique; la correspondance est rapide.

  2. 2

    Parcourir la chaîne d'entrée

    Le moteur déplace un curseur à travers votre chaîne de test. À chaque position, il essaie de suivre le chemin de l'automate. Un caractère qui satisfait l'état actuel avance les deux curseurs; une non-correspondance revient à un point de décision précédent et essaie une autre branche.

  3. 3

    Groupes de capture

    Les parenthèses dans le motif ouvrent un capture group : quand le moteur correspond avec succès à l'intérieur, il mémorise ce qui a été apparié, indexé comme $1, $2, etc. Les groupes nommés (?<n>...) stockent sous un nom. Ces captures apparaissent dans le champ groups de l'objet de correspondance.

  4. 4

    Remplacer avec des backreference

    String.replace(regex, replacement) parcourt les mêmes correspondances mais, au lieu de les renvoyer, insère la chaîne de remplacement. $1 dans le remplacement est la valeur littérale capturée par le groupe 1 — vous pouvez ainsi reformater 2024-01-15 en 15/01/2024 avec une seule regex.

Tâches regex courantes

Situations réelles où vous aurez recours à un testeur de regex.

Valider des formats d'e-mail ou d'URL

Construisez un motif dans le testeur, collez des entrées d'exemple (les vraies et les cas limites), et voyez exactement ce qui correspond avant de l'intégrer à la validation de votre formulaire. Les préréglages offrent un point de départ raisonnable qui gère 95 % des entrées du monde réel.

Nettoyer des données de journaux

Vous avez un fichier de journaux mêlant horodatages, codes de couleur ANSI et adresses IP à masquer ? Utilisez le mode Remplacement avec un motif comme \b(?:\d{1,3}\.){3}\d{1,3}\b et le remplacement [REDACTED] — prévisualisez le résultat avant de l'exécuter avec sed sur le vrai fichier.

Refactoriser du code avec rechercher-remplacer regex

La recherche-remplacement de votre IDE prend en charge la regex mais ne montre pas un aperçu en direct sur plusieurs cas de test. Construisez d'abord le motif ici avec des lignes d'exemple de votre code source, vérifiez les captures et le remplacement, puis collez la regex fonctionnelle dans VS Code / IntelliJ.

Extraire des données structurées

Besoin d'extraire chaque adresse e-mail d'un dépôt de contacts, ou chaque montant en dollars d'un reçu ? Construisez la regex de correspondance dans iKit, copiez-la dans un script d'une ligne (text.matchAll(re)), et vous avez transformé une tâche d'analyse ad hoc en dix lignes de code.

Pourquoi le test de regex local importe

Les motifs regex encodent souvent des informations sensibles : la structure des identifiants client, les points de terminaison API internes, les règles de mot de passe ou les champs PII que vous tentez de masquer. Les coller dans un outil côté serveur — et coller des données de test réelles à côté — divulgue à la fois le motif et les entrées. Le testeur de regex d'iKit est du JavaScript déjà chargé dans l'onglet de votre navigateur.

  • Aucune requête réseau pendant la correspondance ou le remplacement — vérifiable dans DevTools.
  • Les motifs et chaînes de test restent en mémoire du navigateur; effacés sur Effacer ou rafraîchissement de page.
  • Sûr pour les motifs de masquage de journaux de production, la validation de données client et les regex sensibles à la sécurité.

Guides associés

Tutoriels approfondis et comparaisons d'outils du blog iKit.

Questions fréquentes

Quelle saveur de regex est prise en charge ?

regex JavaScript / ECMAScript (le même moteur que votre navigateur utilise pour le RegExp natif). C'est un sur-ensemble strict de POSIX et recouvre largement Python re, Java Pattern et PCRE pour les fonctionnalités courantes. Différences à surveiller : JavaScript prend en charge lookahead/lookbehind, les groupes nommés (via /(?...)/), et les drapeaux /u et /y. Il ne prend PAS en charge les quantificateurs possessifs (a++, a*+), les groupes atomiques ((?>...)) ni les groupes branch-reset — ceux-ci sont propres à PCRE.

Mes motifs ou chaînes de test sont-ils envoyés quelque part ?

Non. Tout l'outil est du JavaScript dans cette page. La compilation, la correspondance et le remplacement du motif s'exécutent tous dans votre navigateur via le constructeur RegExp natif. Ouvrez DevTools → Network et regardez — aucune requête n'est envoyée pendant la saisie. Sûr pour coller des regex correspondant aux journaux de production, e-mails clients ou tout ce que vous ne voudriez pas qu'un outil serveur enregistre.

Quelle est la différence entre $1 et $<name> dans le remplacement ?

Les deux sont des backreference dans la chaîne de remplacement. $1, $2, … réfèrent aux capture group numérotés dans l'ordre où ils apparaissent dans le motif — (foo)(bar) donne $1 = 'foo', $2 = 'bar'. $ réfère à un capture group nommé déclaré comme (?...) — c'est plus lisible et survit au réordonnancement des groupes dans le motif. JavaScript dispose aussi de $& (la correspondance entière), $` (texte avant la correspondance) et $' (texte après la correspondance).

Pourquoi mon lookbehind ne fonctionne-t-il pas ?

Les lookbehind (?<=...) et (?

Comment faire correspondre des emoji, des caractères accentués ou des écritures non latines ?

Activez le flag /u (unicode), puis utilisez des Unicode property escapes dans votre pattern. `\p{L}` correspond à n'importe quelle lettre — y compris ñ, é, 中, ก, ا. `\p{N}` correspond à n'importe quel chiffre, y compris des numéraux non latins comme ٠-٩. `\p{Emoji}` correspond aux code points emoji. Sans /u, le même pattern échoue silencieusement sur les emoji en surrogate pair (tout ce qui dépasse le BMP) et traite les caractères accentués comme des base + combining marks séparés. Le flag /u indique au moteur d'interpréter votre entrée comme des Unicode code points, et non comme des UTF-16 code units bruts — la plupart des bugs regex multilingues disparaissent ainsi d'un seul coup.