tools / regex
regex/
Testeur de regex JavaScript en direct : surligne les correspondances, liste les groupes de capture et affiche un aperçu des remplacements.
Texte de test
Correspondances surlignées
Liste des correspondances
| # | Position | Correspondance | Groupes |
|---|
Remplacer
Questions fréquentes
Quel moteur de regex est utilisé, et est-ce le même que Python ou PCRE ?
Il utilise le moteur de regex JavaScript intégré à votre navigateur, dont la syntaxe diffère un peu de celle de Python, de PCRE et de Java. Les groupes nommés s'écrivent (?<name>...) et non (?P<name>...) comme en Python ; les drapeaux en ligne comme un (?i) en début d'expression ne sont pas pris en charge, cochez donc plutôt le drapeau i ; les quantificateurs possessifs et les groupes atomiques n'existent pas non plus. La prise en charge d'une syntaxe plus récente, comme l'assertion lookbehind, dépend de votre navigateur.
Pourquoi une regex copiée depuis du code ne correspond-elle pas ?
Le plus souvent, les barres obliques de chaque côté, les drapeaux finaux ou les barres obliques inverses d'échappement ont été copiés avec elle. Dans la zone de l'expression, tapez uniquement ce qui se trouve entre les deux barres obliques, et cochez à droite les drapeaux comme g et i. Si vous avez copié depuis une chaîne JavaScript, remplacez \\d+ par \d+, car la zone n'a pas besoin que les barres obliques inverses soient échappées une seconde fois.
Pourquoi n'ai-je qu'une seule correspondance, ou pourquoi . ^ et $ se comportent-ils bizarrement ?
Vérifiez d'abord les drapeaux à côté de la zone de l'expression. Sans g, seule la première correspondance est retenue, et l'en-tête de la liste l'indique. Le point ne correspond pas aux sauts de ligne sauf si vous cochez s ; ^ et $ ne correspondent qu'au début et à la fin de tout le texte sauf si vous cochez m pour une correspondance ligne par ligne. y est le mode sticky : les correspondances doivent commencer au début et se suivre sans trou, vous en aurez donc rarement besoin.
Que faire face au message « La recherche a dépassé 1.5 s et a été arrêtée » ?
L'expression fait trop de retours arrière sur votre texte et doit être réécrite. Un coupable typique est un quantificateur imbriqué comme (a+)+, dont le temps d'exécution se multiplie sur un long texte qui ne correspond pas. La page exécute l'expression dans un thread en arrière-plan et l'arrête au bout de 1,5 seconde : la page elle-même ne se fige donc jamais. Préciser les quantificateurs, supprimer l'imbrication ou utiliser une plage de caractères plus étroite règle généralement le problème.
Que se passe-t-il quand il y a beaucoup de correspondances ou que le texte est très long ?
Le surlignage et la liste montrent au plus les 1000 premières correspondances et vous préviennent quand il y en a davantage ; le résultat du remplacement n'est pas concerné par cette limite. Quand le texte dépasse 200 000 caractères, la page attend que vous arrêtiez de taper pendant environ 0,4 seconde avant de recalculer. Il n'y a pas d'autre limite de longueur : la vitesse dépend donc surtout de l'expression elle-même.
Comment écrire le modèle de remplacement ?
Il suit la syntaxe de remplacement de JavaScript : $1 et $2 sont des groupes de capture numérotés, $<name> est un groupe nommé, $& est la correspondance entière et $$ est un signe dollar littéral. Laissez le modèle vide pour supprimer ce qui correspond. Sans le drapeau g, seule la première correspondance est remplacée.
Les préréglages intégrés pour les numéros de téléphone et les pièces d'identité peuvent-ils servir tels quels à la validation ?
Considérez-les comme un point de départ, pas comme une validation stricte. Le préréglage du mobile accepte 11 chiffres commençant par 1 dont le deuxième chiffre est de 3 à 9, et ne gère pas les indicatifs de pays. Le préréglage de la pièce d'identité ne vérifie que le format à 18 caractères : les jours de 01 à 31 sont acceptés pour tous les mois, le dernier chiffre de contrôle n'est pas vérifié et le code de région n'est pas comparé aux vraies régions. Les préréglages e-mail et URL ne couvrent que les formes courantes, et celui de l'URL n'accepte que http et https. Cliquer sur un préréglage remplace l'expression dans la zone et ramène les drapeaux à g seul.
Le texte que je saisis est-il envoyé quelque part ?
Non. La regex s'exécute dans un thread en arrière-plan de votre navigateur, et le texte de test, l'expression et le modèle de remplacement ne sont jamais envoyés à un serveur. La page ne conserve pas non plus votre saisie.