PixConvert

Testeur de regex et débogueur en ligne gratuit

Créez et déboguez vos expressions régulières avec coloration syntaxique instantanée et détail des groupes de capture, directement dans votre navigateur.

//
Examples:

Comment tester une regex

1

Saisissez votre motif.

Entrez la regex entre les deux barres obliques, sans les barres elles-mêmes. Choisissez les indicateurs avec les boutons g, i, m et s, ou chargez l'un des trois exemples.

2

Collez votre texte de test.

Placez un exemple de texte dans la zone sous le motif. Les correspondances sont surlignées pendant la saisie, et le compteur indique combien le motif en a trouvé.

3

Vérifiez les groupes et copiez.

Lisez les groupes de capture listés pour chaque correspondance. Quand le motif fonctionne, copiez-le sous la forme /motif/flags et collez-le dans votre code JavaScript.

Questions fréquentes

Réponses sur le moteur de regex JavaScript, les indicateurs et les groupes.

Comment tester une regex en ligne ?

Saisissez le motif dans la zone du haut sans les barres obliques, puis collez un exemple de texte en dessous. Les correspondances sont surlignées pendant la saisie et le nombre de correspondances se met à jour. Activez g pour voir toutes les correspondances, pas seulement la première.

Quelle variante de regex ce testeur utilise-t-il ?

Il utilise le moteur RegExp intégré de JavaScript, la variante ECMAScript exécutée par votre navigateur. Les motifs qui fonctionnent ici se comportent de la même façon dans le code JavaScript et TypeScript. La syntaxe PCRE, Python et Java peut différer : testez ces motifs dans leur propre moteur.

Pourquoi ma regex fonctionne-t-elle en Python ou en PHP, mais pas ici ?

JavaScript ne gère pas certaines syntaxes PCRE et Python. Les quantificateurs possessifs comme a++, les groupes atomiques, l'indicateur en ligne (?i) et les groupes nommés (?P...) de Python échouent avec Nothing to repeat ou Invalid group. Un \K est lu comme un simple K. Réécrivez ces parties en syntaxe JavaScript.

À quoi servent les indicateurs g, i, m et s ?

L'indicateur g trouve toutes les correspondances au lieu de s'arrêter à la première. L'indicateur i ignore la casse. Avec m, les ancres ^ et $ correspondent à chaque ligne. Avec s, le point correspond aussi aux sauts de ligne. Seul g est activé par défaut.

Les indicateurs u, y ou d sont-ils pris en charge ?

Non. Seuls g, i, m et s peuvent être activés. Sans u, les échappements de propriétés Unicode ne fonctionnent pas et un emoji compte pour deux caractères, donc un point n'en capture que la moitié. Pour l'instant, testez les motifs riches en Unicode dans votre propre code.

Comment utiliser les groupes de capture nommés ?

Placez un point d'interrogation et un nom entre chevrons juste après la parenthèse ouvrante, comme dans l'exemple word intégré. Chaque correspondance liste alors le groupe par son nom, par exemple word: longer. Si un motif mélange groupes nommés et non nommés, seuls les groupes nommés sont listés.

Pourquoi mon motif affiche-t-il des correspondances vides ?

Les motifs qui peuvent ne rien capturer, comme a* ou \d*, correspondent aussi à une chaîne vide à chaque endroit qui ne convient pas. Sur le texte bbb, a* donne 4 correspondances vides. Utilisez + au lieu de * quand il vous faut au moins un caractère.

Pourquoi ^ ne correspond-il qu'à la première ligne ?

Sans l'indicateur m, ^ et $ marquent le début et la fin de l'ensemble du texte. Activez m et ils correspondent à chaque saut de ligne : un motif comme ^\w+ trouve alors le premier mot de chaque ligne, et pas seulement celui de la première ligne.

Pourquoi la page se fige-t-elle avec certains motifs ?

Les quantificateurs imbriqués comme (a+)+$ provoquent un retour arrière catastrophique, et le testeur n'a pas de limite de temps. Dans un test Node avec le même code, 27 lettres ont pris environ 2 secondes, et chaque lettre supplémentaire doublait ce temps. Restreignez le groupe interne et rechargez l'onglet s'il se bloque.

Puis-je remplacer du texte avec ce testeur de regex ?

Non, il n'existe pas encore de mode remplacement. Le testeur affiche uniquement les correspondances et les groupes de capture. Pour préparer un remplacement, vérifiez que chaque groupe capture la bonne partie, puis utilisez-le comme $1 dans String.replace dans votre propre code.

Le texte que je teste est-il envoyé quelque part ?

Le texte de test n'est pas envoyé ; la recherche de correspondances s'exécute dans votre navigateur. Sur le site en ligne, Google Analytics note chaque exécution de recherche et sa durée. Pour un motif invalide, il reçoit aussi le message d'erreur, qui dans Chrome inclut le motif lui-même.

Fonctionnalités du testeur de regex pour les motifs JavaScript

Votre motif s'exécute sur le moteur RegExp JavaScript de votre navigateur : un motif qui fonctionne ici se comporte de la même façon dans votre code JS.

Testeur de regex avec le motif \d{4}-\d{2}-\d{2}, l'indicateur g activé et 3 dates surlignées dans des lignes de journal

Surlignage des correspondances pendant la saisie

Chaque correspondance dans votre texte de test est marquée en couleur, et le nombre de correspondances affiché au-dessus se met à jour à chaque modification. Avec g activé, vous voyez toutes les correspondances ; sans lui, seulement la première.

  • Recalcul à chaque frappe
  • L'indicateur g trouve toutes les correspondances
  • Nombre de correspondances affiché au-dessus du texte
Essayer maintenant
Groupes de capture du testeur de regex pour (?<year>\d{4})-(?<month>\d{2}) : année 2024 avec les mois 01, 01 et 02

Groupes de capture de chaque correspondance

Sous les surlignages, chaque correspondance a sa propre ligne avec ses groupes. Les groupes nommés s'affichent par leur nom, comme word: longer, et les groupes non nommés apparaissent sous la forme Groupe 1, Groupe 2, etc.

  • Groupes nommés listés par nom
  • Les groupes sans correspondance affichent un tiret
  • Une ligne par correspondance
Essayer maintenant

Quatre indicateurs, un clic chacun

Les boutons à côté du motif activent global (g), ignorer la casse (i), multiligne (m) et dotAll (s). L'indicateur g est activé par défaut. Les indicateurs u, y et d ne sont pas encore disponibles.

Comprendre pourquoi un motif échoue

Un motif invalide affiche le message du moteur, par exemple Unterminated group ou Nothing to repeat, dans un encadré rouge. Corrigez le motif et les correspondances reviennent.

Partir d'un exemple

Trois motifs d'exemple se chargent en un clic : adresses e-mail, dates ISO comme 2024-01-15, et un groupe nommé pour les mots de cinq lettres ou plus. Copier place le motif dans votre presse-papiers sous la forme /motif/flags.

Votre texte de test reste ici

La recherche s'exécute sur votre appareil et le texte que vous testez n'est jamais envoyé. Les statistiques d'usage notent la durée d'une recherche et, pour un motif invalide, le message d'erreur, qui peut inclure le motif.

Cas d'usage courants des regex

Trois tâches courantes où tester une regex d'abord évite un bug plus tard.

Validation de formulaires

Vérifiez un motif d'e-mail, de téléphone ou de code postal sur des exemples réels avant de l'intégrer à un formulaire. Collez des saisies valides et invalides sur des lignes séparées et voyez lesquelles correspondent.

  • Collez des saisies valides et invalides, une par ligne
  • Activez m pour que les ancres s'appliquent à chaque ligne
  • Vérifiez que le motif rejette tous les mauvais exemples

Analyse de logs

Extrayez des champs de lignes de journal, comme des adresses IP, des horodatages et des codes d'état. Collez quelques lignes d'un fichier journal et utilisez des groupes pour capturer chaque partie.

  • Capturez les adresses IP avec des groupes numérotés
  • Repérez des dates ISO comme 2024-01-15
  • Nommez chaque groupe pour que chaque champ soit étiqueté

Recherche de texte avant un remplacement

Trouvez chaque URL, hashtag ou mot répété dans un bloc de texte avant d'écrire l'étape de remplacement dans votre code. Le nombre de correspondances vous indique combien de résultats attendre.

  • Trouvez des URL et des adresses e-mail dans un texte collé
  • Repérez des lettres ou des mots doublés avec une référence arrière
  • Vérifiez le nombre de correspondances avant un remplacement en masse