Testeur de regex en ligne — Expressions régulières JavaScript
Testeur d’expressions régulières JavaScript avec drapeaux, surlignage, groupes et remplacement
Traitement dans le navigateur · aucun envoi de fichier
Présentation
Une expression régulière se trompe facilement de façon subtile. Saisissez un motif et un texte : cet outil montre immédiatement où le motif correspond, colore chaque correspondance et liste toutes les correspondances avec leur position et leurs groupes de capture. Ajoutez une chaîne de remplacement pour prévisualiser le texte substitué.
Mode d’emploi
- Saisissez le motif sans les barres obliques autour (un
/motif/gicollé depuis du code est séparé en motif et drapeaux), par exemple(\d+)-(?<word>[a-z]+). - Cochez les drapeaux nécessaires.
g, qui trouve toutes les correspondances, est activé par défaut. - Collez le texte à tester. Les correspondances sont surlignées et le tableau liste la position et les groupes de chacune.
- Dans le champ de remplacement, utilisez
$1,$<name>ou$&pour voir le résultat, puis copiez-le. Pour supprimer toutes les correspondances, activez Afficher le remplacement et laissez le champ vide.
Fonctionnement
- Drapeaux :
gglobal,iinsensible à la casse,mfait fonctionner^et$ligne par ligne,spermet à.de correspondre aux sauts de ligne,uactive le mode Unicode,yne cherche qu’à la position courante (sticky). - Sans
g, seule la première correspondance est renvoyée. Avecgetyà la fois, seules les correspondances qui se suivent sans interruption sont trouvées. - Les correspondances vides (
a*,^, le motif vide) font avancer la position d’un caractère et la recherche continue ; avecu, le pas est un point de code entier. - La syntaxe de remplacement est celle de
String.prototype.replace:$$,$&,$`,$',$1à$99et$<name>. - Garde-fous : 1 000 correspondances au maximum, 200 000 caractères de texte et 5 000 de motif, plus une limite d’exécution de 1,5 seconde. Cette limite fonctionne en exécutant la recherche dans un Web Worker que l’on arrête, ce qui explique que la page principale ne se fige jamais.
Exemples
| Motif | Drapeaux | Texte | Résultat |
|---|---|---|---|
\d+ |
g | a1 b22 c333 |
1, 22, 333 |
\p{L}+ |
gu | café 123 crème |
café, crème |
a* |
g | baac |
quatre correspondances, aux positions 0, 1 (aa), 3 et 4 |
(?<y>\d{4})-(\d{2}) |
2024-05 |
groupe 1 y = 2024, groupe 2 = 05 |
À savoir
\wne reconnaît que les lettres ASCII, les chiffres et_:\w+appliqué àcaféne trouve quecaf. Pour les lettres accentuées, utilisez\p{L}avec le drapeauu, et\p{Emoji_Presentation}pour les emojis.- Votre motif et votre texte ne sont jamais envoyés à un serveur.
Questions fréquentes
Quelle variante d’expressions régulières est utilisée ?
Le moteur d’expressions régulières JavaScript (ECMAScript) de votre navigateur ; la syntaxe diffère donc par endroits de Python, PCRE ou Java. Les quantificateurs possessifs et les drapeaux en ligne comme (?i) ne sont pas disponibles, et les groupes nommés s’écrivent (?<nom>...).
Que se passe-t-il si un motif s’exécute trop longtemps ?
La recherche tourne dans un Web Worker séparé, arrêté au bout de 1,5 seconde. Une répétition imbriquée comme (a+)+$ peut ralentir de façon exponentielle sur un texte à peine plus long (retour arrière catastrophique). Dans ce cas, un message s’affiche et la page reste réactive.
Y a-t-il des limites au nombre de correspondances ou à la longueur du texte ?
Les 1 000 premières correspondances sont affichées, le texte peut atteindre 200 000 caractères et le motif 5 000. Au-delà, la liste est tronquée ou un message s’affiche à la place.
Un motif qui correspond à la chaîne vide peut-il tourner en boucle à l’infini ?
Non. Après une correspondance vide, la position de recherche (lastIndex) avance d’un caractère, si bien que la boucle se termine toujours. Avec le drapeau u, elle saute un point de code entier : un emoji n’est jamais coupé en deux.