Regex Tester

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand Regex Tester

Ce testeur exécute une expression régulière sur un texte d'exemple et affiche chaque correspondance, sa position et le contenu de chaque groupe de capture.

How it works

Le motif est compilé avec le moteur RegExp du navigateur, si bien que ce qui se passe ici est exactement ce qui se passe dans Node et dans le navigateur — syntaxe ECMAScript, ni PCRE ni RE2. Ce moteur revient en arrière : quand une branche échoue, il rembobine et essaie l'alternative suivante, ce qui explique qu'un quantificateur placé dans un quantificateur, comme (a+)+$, puisse explorer un nombre exponentiel de chemins face à une longue chaîne sans correspondance. C'est le retour arrière catastrophique, et la limite de deux secondes est là pour l'attraper.

When to use it

  • Comprendre pourquoi un motif de validation refuse une entrée qu'il devrait accepter.
  • Extraire des champs de lignes de journal avant d'écrire le code d'analyse.
  • Vérifier la numérotation des groupes de capture avant de la câbler dans une chaîne de remplacement.
  • Tester un motif sur les cas gênants — chaîne vide, texte non ASCII, plusieurs lignes — plutôt que sur le cas idéal.

Watch out for

  • Le testeur s'exécute toujours avec le drapeau global pour vous montrer toutes les correspondances. Votre propre code, avec une regex non globale, n'obtient que la première — et une regex globale réutilisée d'un appel à l'autre conserve lastIndex entre les deux, ce qui explique que .test() puisse alterner entre true et false sur la même chaîne.
  • Un motif qui prend des secondes ici en prendra autant en production. S'il s'exécute un jour sur une entrée fournie par l'utilisateur sur un serveur, c'est un vecteur de déni de service, et un motif fourni par l'utilisateur est pire encore.
  • En JavaScript, \d, \w et \b sont limités à l'ASCII. Un motif copié depuis Python ou Java qui s'appuie sur des classes conscientes d'Unicode manquera silencieusement les entrées non anglophones.
  • Le point ne correspond pas à un saut de ligne tant que vous n'ajoutez pas le drapeau s, et ^ et $ ancrent la chaîne entière tant que vous n'ajoutez pas m.

Not the right tool for: Valider des adresses e-mail. Toutes les regex prévues pour cela sont soit fausses, soit illisibles — vérifiez la présence d'un @ avec quelque chose de chaque côté, puis envoyez un message de confirmation.

Frequently Asked Questions

Quelle variante de regex est utilisée ?

Ce testeur utilise le moteur RegExp intégré de JavaScript, qui suit la syntaxe des expressions régulières ECMAScript. C'est le même moteur que celui de Node.js et des navigateurs.

Quels drapeaux (flags) sont pris en charge ?

JavaScript prend en charge g (global), i (insensible à la casse), m (multiligne), s (dotAll), u (unicode) et y (sticky). Saisissez-les dans le champ des drapeaux.

Comment capturer des groupes ?

Utilisez des parenthèses pour les groupes de capture : (\w+). Les groupes nommés s'écrivent (?<name>\w+). Les résultats affichent aussi bien les valeurs des groupes indexés que celles des groupes nommés.

How to Use Regex Tester

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.