Ce testeur exécute des expressions régulières JavaScript sur votre texte et affiche chaque correspondance avec sa position et ses groupes de capture. L’évaluation se fait dans le navigateur : rien n’est envoyé ni enregistré.
Vos données sont traitées localement dans votre navigateur et ne sont pas envoyées à notre serveur.
Motif invalide :
Correspondances (2)
Contact ada@example.com or grace@example.org for details.
Aucune correspondance dans ce texte.
#1ada@example.comà 8
#2grace@example.orgà 27
Comment utiliser cet outil
1 Saisissez une expression régulière et cochez les flags nécessaires.
2 Collez le texte à parcourir ; les correspondances sont surlignées et listées au fil de la saisie.
3 Partez d’un des exemples proposés pour obtenir un motif qui fonctionne.
4 Copiez les valeurs trouvées ou videz le formulaire.
Formule et logique de calcul
Recherche des correspondances
new RegExp(pattern, flags).exec(text)
Le motif est compilé par le moteur JavaScript du navigateur. Sans le flag g, seule la première correspondance est renvoyée ; avec g, le testeur continue jusqu’à la fin du texte.
Flags
g global · i ignore case · m multiline · s dotAll · u unicode · y sticky
Les flags modifient la façon dont le moteur interprète le motif. Le testeur les transmet au constructeur RegExp et affiche les erreurs de syntaxe avec le message du moteur.
Exemple de calcul
Trouver des adresses e-mail
Un message adressé au support contient deux adresses e-mail.
Motif : \b[\w.+-]+@[\w-]+\.[\w.]+\b
Flag : g
Résultat : ada@example.com et grace@example.org
Chaque correspondance est listée avec son index de départ ; les groupes de capture apparaissent dès que le motif contient des parenthèses.
Capturer une date
Extraire l’année, le mois et le jour de dates au format ISO.
Motif : (\d{4})-(\d{2})-(\d{2})
Flag : g
Groupes : année, mois et jour pour chaque correspondance
Les parties entre parenthèses sont renvoyées comme groupes de capture dans l’ordre où elles apparaissent dans le motif.
Cas limites et précision
Backtracking catastrophique
Les quantificateurs imbriqués comme (a+)+ peuvent obliger le moteur à un travail exponentiel sur certaines entrées. Si la page se bloque, simplifiez le motif ; le testeur ne peut pas interrompre une expression en cours d’exécution.
Correspondances de longueur nulle
Des motifs comme ^ ou \b peuvent correspondre à une chaîne vide. Après une correspondance vide, le testeur avance la position de recherche pour éviter une boucle sans fin.
Syntaxe JavaScript uniquement
Le testeur utilise la syntaxe RegExp de JavaScript, et non celle de PCRE ou de Python. Lookbehind et groupes nommés ne fonctionnent que dans les moteurs qui les implémentent.
Questions fréquentes
Pourquoi une seule correspondance s’affiche-t-elle ?+−
Le flag g (global) est indispensable pour trouver toutes les correspondances. Sans lui, le testeur s’arrête au premier résultat.
Que sont les groupes de capture ?+−
Chaque partie du motif entre parenthèses capture du texte. Les groupes sont numérotés de gauche à droite et affichés à côté de la correspondance ; un groupe facultatif sans correspondance apparaît sous la forme ∅.
Le motif et le texte sont-ils envoyés sur un serveur ?+−
Non. La recherche s’exécute dans votre navigateur avec le moteur RegExp natif ; rien n’est transmis à un serveur.
Les quantificateurs imbriqués et les alternatives ambiguës provoquent un backtracking catastrophique. Rendez le motif plus précis ou ancrez-le pour réduire l’espace de recherche.
Les groupes nommés sont-ils pris en charge ?+−
Le moteur accepte la syntaxe JavaScript moderne : les groupes nommés fonctionnent lorsque le navigateur les prend en charge. La liste des résultats affiche les groupes numérotés.
Outils de développement similaires
Formater, encoder ou hacher le texte que vous recherchez.