Testeur regex
Testez des motifs sur du texte réel, directement dans votre navigateur.
| # | Type | Valeur | Position |
|---|
Fonctionne dans votre navigateur. Rien de ce que vous tapez n'est envoyé nulle part.
- Surlignage des correspondances en direct
- Groupes nommés et numérotés
- S'exécute en sécurité dans un worker
Comment tester une expression régulière
- Tapez ou collez votre motif et choisissez les drapeaux voulus.
- Collez le texte sur lequel tester la correspondance.
- Consultez les correspondances surlignées, le tableau des groupes, ou prévisualisez un remplacement.
Référence rapide de la syntaxe regex
| Motif | Correspond à |
|---|---|
| \d | N'importe quel chiffre, de 0 à 9 |
| \w | N'importe quelle lettre, chiffre ou caractère _ |
| \s | N'importe quel caractère d'espacement |
| + | Un ou plusieurs du token précédent |
| * | Zéro ou plusieurs du token précédent |
| ? | Zéro ou un, ou rend un quantificateur paresseux |
| ^ et $ | Début et fin de la chaîne ou de la ligne |
Fonctionnalités regex de JavaScript
| Fonctionnalité | Syntaxe | Remarque |
|---|---|---|
| Groupes nommés | (?<name>...) | Pris en charge depuis ES2018 |
| Lookbehind | (?<=...) et (?<!...) | Pris en charge depuis ES2018 |
| Mode Unicode | drapeau u | Nécessaire pour les échappements de propriété Unicode comme \p{Letter} |
| Insensible à la casse | drapeau i | Même principe que dans la plupart des autres langages |
Conseils pour écrire des motifs
- Échappez les caractères spéciaux comme . ( ) [ ] avec un antislash quand vous voulez le caractère littéral.
- Utilisez un groupe non capturant (?:...) pour regrouper quand vous n'avez pas besoin de référencer cette correspondance plus tard.
- Les quantificateurs gourmands capturent le plus possible. Ajoutez un ? après l'un d'eux, comme +?, pour une correspondance paresseuse qui s'arrête au premier point possible.
- Testez avec des cas limites, comme une chaîne vide ou des espaces en trop, pas seulement le texte que vous attendez de faire correspondre.
FAQ Testeur regex
Pourquoi mon motif a-t-il arrêté de répondre ?
Certains motifs peuvent revenir en arrière de façon exponentielle sur certains textes. La correspondance s'exécute dans un worker en arrière-plan avec une limite de 1,5 seconde, donc un motif emballé est arrêté au lieu de figer l'onglet.
Que signifient les drapeaux ?
g trouve chaque correspondance au lieu de seulement la première, i ignore la casse, m fait correspondre ^ et $ ligne par ligne, s permet au point de capturer les retours à la ligne, u active le mode Unicode complet, y ancre la correspondance au dernier index, et d ajoute les positions de début et de fin de chaque correspondance.
Le champ de remplacement modifie-t-il mon texte de test ?
Non. Il affiche ce que String.replace produirait dans une zone de résultat séparée, donc le texte de test que vous avez tapé reste exactement tel quel.
Les groupes de capture nommés sont-ils pris en charge ?
Oui. Écrivez un groupe comme (?<name>...) et son nom apparaît à côté du numéro du groupe dans le tableau des correspondances.
Mon texte est-il envoyé quelque part ?
Non. La correspondance s'exécute dans un worker à l'intérieur de votre propre onglet, et rien de ce que vous tapez ne quitte la page.
Quelle variante de regex est utilisée ici ?
Le moteur RegExp JavaScript natif de votre navigateur, le même qui exécute vos motifs si vous construisez une application web ou un script Node.js.
Qu'est-ce que le retour en arrière catastrophique ?
C'est quand un motif avec des groupes répétés imbriqués, comme (a+)+b, peut prendre un temps exponentiellement plus long pour échouer à mesure que l'entrée grandit d'un seul caractère. La limite de 1,5 seconde du worker attrape ce genre de motif avant qu'il ne fige la page.
^ et $ peuvent-ils correspondre au début et à la fin de chaque ligne, pas juste de la chaîne entière ?
Oui, activez le drapeau m (multiligne). Sans lui, ^ et $ ne correspondent qu'au tout début et à la toute fin de l'ensemble du texte de test.