Testeur de Regex

/ /

Tapez une expression régulière, collez le texte à tester et le testeur exécute le motif puis liste chaque correspondance trouvée. Chaque résultat indique où commence la correspondance et le contenu de chaque groupe de capture, pour voir exactement ce que le motif a saisi. Activez les drapeaux insensible à la casse, multiligne et dotall pour changer le comportement du motif.

Comment tester une regex

  1. 1

    Saisissez votre motif

    Tapez l'expression sans délimiteurs ; le testeur l'encadre dans `/ /` pour vous. Un motif invalide affiche un message d'erreur clair au lieu d'échouer en silence.

  2. 2

    Choisissez les drapeaux

    Activez `i` (insensible à la casse), `m` (multiligne) ou `s` (dotall) selon vos besoins.

  3. 3

    Collez le texte de test

    Ajoutez le texte à parcourir. Le testeur le lit en entier et trouve chaque correspondance, pas seulement la première.

  4. 4

    Inspectez les correspondances

    Chaque correspondance affiche sa position (offset) dans le texte, la correspondance complète et chaque groupe de capture numéroté.

Ce que le testeur vous montre

Exécuter un motif de tête, ou avec un grep rapide, vous dit si quelque chose correspond. Le testeur montre en plus :

  • Chaque correspondance, avec sa position. Il parcourt toujours tout le texte et signale chaque correspondance avec l’offset du caractère où elle commence.
  • Quel groupe a capturé quoi. Chaque correspondance est décomposée en sa correspondance complète et ses groupes de capture numérotés, pour confirmer qu’un (...) a bien saisi la partie attendue.
  • Ce que changent les drapeaux. Activez i, m ou s et relancez le test pour voir comment la casse, le multiligne ou le dotall changent le résultat.

Les drapeaux, en clair

Drapeau Nom Ce qu’il change
i Insensible à la casse A correspond aussi à a, et inversement
m Multiligne ^ et $ correspondent au début et à la fin de chaque ligne, pas seulement du texte entier
s Dotall . correspond aussi aux sauts de ligne

La recherche est toujours globale : le testeur renvoie toutes les correspondances du texte, il n’y a donc pas de drapeau « global » distinct à activer. Les motifs s’exécutent sur le moteur PCRE avec le support Unicode, de sorte que des classes comme \w et \d se comportent de façon cohérente sur du texte international.

Problèmes de regex fréquents que cela aide à repérer

Symptôme Cause habituelle
Une seule correspondance géante qui couvre tout .* est gourmand ; utilisez .*? ou une classe négative comme [^"]*
^ ou $ ne correspond qu’une fois Le drapeau m manque sur un texte multiligne
. s’arrête aux sauts de ligne Le drapeau s manque
Groupes de capture dans un ordre inattendu Les ( imbriqués décalent les numéros de groupe ; comptez-les de gauche à droite
Un motif qui s’exécute lentement Des * ou + imbriqués sur des alternatives qui se chevauchent provoquent beaucoup de retour arrière

Conseils pour des motifs plus rapides et plus sûrs

  • Ancrez avec ^ quand la correspondance commence au début, pour que le moteur ne parcoure pas toute la chaîne.
  • Préférez une classe de caractères ([abc]) à l’alternance (a|b|c) ; les classes sont plus rapides dans tous les grands moteurs.
  • Remplacez un .* gourmand par une classe négative comme [^"]* quand vous connaissez le terminateur, pour éviter le retour arrière.

Questions fréquentes

Il exécute votre motif avec PCRE, le moteur intégré à PHP, en mode Unicode. La syntaxe propre à PCRE, comme \d, \b et les lookarounds, fonctionne comme prévu. Si vous déployez le motif en JavaScript, Python ou un autre langage, vérifiez les petites différences de syntaxe avant la mise en production.

Toutes. Le testeur parcourt toujours tout le texte, il n’y a donc pas de drapeau « global » distinct à activer. Chaque correspondance est listée avec sa position dans le texte.

Oui. Chaque correspondance est décomposée en la correspondance complète et chaque groupe de capture numéroté, pour confirmer quelle partie du texte chaque (...) a capturée.

i rend la recherche insensible à la casse, m fait correspondre ^ et $ à chaque limite de ligne, et s permet à . de correspondre aux sauts de ligne. Activez-les ou désactivez-les et relancez le test pour comparer les résultats.

Le testeur affiche un message d’erreur clair décrivant le problème, comme un crochet non fermé ou un groupe non terminé, au lieu de renvoyer zéro correspondance sans prévenir.

Outils similaires

Outil disponible dans d’autres langues