Mode d'emploi
- Saisissez le motif sans les barres obliques. L'exemple trouve les dates écrites sous la forme 2026-11-10.
- Cochez les options dont vous avez besoin. g trouve tous les résultats, i ignore la casse, et m et s modifient la lecture des sauts de ligne.
- Collez votre texte d'essai. Les résultats sont surlignés aussitôt, et la liste sous le texte donne la position et les groupes de chacun.
- Saisissez un texte dans Remplacer par pour voir le résultat, puis appuyez sur Copier pour le prendre.
Comment la recherche fonctionne ici
La page utilise le moteur d'expressions régulières intégré à votre navigateur, celui qu'utilise JavaScript. Les résultats sont trouvés dans l'ordre, depuis le début du texte. La position affichée est le nombre de caractères avant le résultat, en partant de 0, compté en unités UTF-16 comme le fait JavaScript pour le texte.
La recherche tourne dans un processus de travail d'arrière-plan de votre navigateur, si bien que la page reste réactive. Une recherche s'arrête après 10 000 résultats, et un texte de plus de 200 000 caractères n'est pas recherché. Un motif qui peut ne rien trouver, comme x*, avance d'un caractère après chaque résultat vide, si bien que la recherche se termine toujours. Une recherche qui dure plus de 2 secondes est arrêtée ; voir la section sur le retour arrière catastrophique.
- Sans l'option g, seul le premier résultat est affiché, comme le fait String.match().
- L'option u lit un emoji ou tout autre caractère hors du plan de base comme un seul caractère.
- L'option d ajoute à la liste le début et la fin de chaque groupe.
Retour arrière catastrophique et limite de 2 secondes
Un moteur d'expressions régulières essaie les façons dont un motif pourrait correspondre, l'une après l'autre. Avec certains motifs, surtout un groupe répété à l'intérieur d'un autre groupe répété comme (a+)+, le nombre de façons croît très vite : chaque caractère de plus peut doubler le travail. Cela arrive surtout lorsque le texte correspond presque et n'échoue qu'à la toute fin.
Par exemple, le motif (a+)+$ sur un texte de nombreuses lettres a suivies d'un point d'exclamation ne peut pas correspondre, car $ exige la fin du texte. Le moteur essaie tout de même chaque découpage des lettres avant d'abandonner. Avec environ 26 lettres, la recherche peut déjà prendre une seconde ou plus sur un ordinateur courant, et chaque lettre de plus la rend bien plus lente. Le temps dépend de votre appareil.
Cette page exécute chaque recherche dans un processus d'arrière-plan et l'arrête après 2 secondes, en affichant un message. Le reste de la page continue de fonctionner : vous pouvez donc changer le motif ou le texte et réessayer.
- Ne mettez pas une répétition à l'intérieur d'une autre sur les mêmes caractères : écrivez (a+)$ au lieu de (a+)+$. Sur le même texte, le motif sûr se termine aussitôt.
- Soyez précis : utilisez [a-z] ou \d+ dans un groupe au lieu d'un point, pour que les parties d'un résultat ne se chevauchent pas de multiples façons.
- Testez d'abord le motif sur un court extrait du texte, puis sur le texte entier.
- Ancrez le motif lorsque vous le pouvez : ^ au début et $ à la fin empêchent le moteur d'essayer chaque point de départ.
Motifs de remplacement
Le texte de remplacement suit les règles de String.replace() en JavaScript. Un signe dollar commence un code qui est remplacé par le texte trouvé :
| Vous écrivez | Il est remplacé par |
|---|---|
| $1, $2 et ainsi de suite | Le texte du groupe numéroté |
| $& | Tout le résultat |
| $` | Le texte avant le résultat |
| $' | Le texte après le résultat |
| $$ | Un seul signe dollar |
| Un signe dollar, un chevron ouvrant, le nom du groupe et un chevron fermant | Le texte du groupe nommé |
Différences avec PCRE et .NET
Un motif écrit pour PCRE (PHP, de nombreux outils Linux) ou pour .NET (C#, Visual Basic) fonctionne en général ici, mais certaines fonctions n'existent que dans l'un des moteurs. Le tableau liste celles qui comptent le plus.
| Fonction | JavaScript (cette page) | PCRE et .NET |
|---|---|---|
| Groupes atomiques et quantificateurs possessifs | Non disponible | Groupes atomiques dans PCRE et .NET ; quantificateurs possessifs comme a++ dans PCRE |
| Les ancres \A, \Z et \z | Non disponible : utilisez ^ et $ | Disponibles |
| Un groupe nommé écrit (?P<…>) | Non disponible | Disponible dans PCRE |
| Une option en ligne comme (?i) dans le motif | Non disponible : réglez plutôt l'option | Disponible dans .NET |
| Exclure du résultat un texte avec \K | Non disponible | Disponible dans PCRE |
| Remplacer un groupe nommé | Signe dollar, chevron ouvrant, nom, chevron fermant | .NET utilise signe dollar, accolade, nom, accolade |
Exemple détaillé : trois dates dans un même texte
Le motif d'exemple a trois groupes nommés : quatre chiffres pour l'année, deux pour le mois et deux pour le jour, séparés par des tirets. Le texte contient trois dates, qui correspondent aux positions 14, 34 et 50, comptées à partir de 0 sur la première lettre.
Avec le remplacement jour, mois, année écrit comme les trois noms de groupes (un signe dollar et chaque nom entre chevrons), les trois dates sont réécrites 10.11.2026, 03.12.2026 et 15.01.2027. Le résultat se lit : Facture datée du 10.11.2026, payée le 03.12.2026. Échéance 15.01.2027.
Questions fréquentes
Quelle variante d'expressions régulières ce testeur utilise-t-il ?
Il utilise le moteur JavaScript intégré à votre navigateur. La plupart des motifs de recherche, de validation et de nettoyage de texte fonctionnent de la même façon en JavaScript, PCRE et .NET, mais quelques fonctions diffèrent, comme le montre la section sur les différences.
Pourquoi la liste s'arrête-t-elle à 10 000 résultats ?
Les résultats sont collectés dans l'ordre. Une liste très longue serait lente à dessiner et trop longue à lire : lorsqu'un motif trouve plus souvent, les 10 000 premiers résultats sont affichés, et la page indique que la recherche s'est arrêtée.
Pourquoi mon texte est-il refusé au-delà de 200 000 caractères ?
Un texte très long ralentit la page, et un motif peut y prendre beaucoup de temps. Testez d'abord le motif sur une partie du texte, puis sur le reste, ou coupez le texte en morceaux plus petits.
Pourquoi le surlignage saute-t-il certains résultats ?
Un résultat sans caractère, comme l'emplacement vide que x* trouve entre des lettres, n'a rien à surligner. Il reste dans la liste avec sa position, pour que vous voyiez encore où il se trouve.
Le testeur envoie-t-il mon texte à un serveur ?
Non. La recherche s'effectue dans votre navigateur, et la page ne stocke pas ce que vous saisissez ni ne l'envoie. Fermer la page l'efface.
Que signifie le message sur un motif non valide ?
Le motif ne peut pas être lu comme une expression régulière JavaScript. Le message vient du moteur, en anglais, et nomme le problème, par exemple un crochet jamais fermé.
Puis-je tester ici un motif écrit pour PCRE ou .NET ?
Souvent oui, lorsqu'il n'utilise que des fonctions courantes. S'il contient un groupe atomique, un quantificateur possessif, \A ou \z, ou une option en ligne, réécrivez d'abord cette partie pour JavaScript ; le tableau indique ces fonctions.
Pourquoi la page dit-elle que le motif a pris trop de temps ?
La recherche n'a pas fini en 2 secondes sur ce texte, si bien que la page l'a arrêtée. Cela signifie en général un motif avec une répétition à l'intérieur d'une autre, comme (a+)+, sur un texte qui correspond presque. La section sur le retour arrière catastrophique montre une forme plus sûre.
Sources
- MDN Web Docs (en anglais) : Regular expressions in JavaScript, including flags and groups
- MDN Web Docs (en anglais) : String.prototype.replace(), the replacement patterns
- PCRE2 (en anglais) : pattern syntax (the PCRE documentation)
- Microsoft (en anglais) : .NET regular expression language quick reference
Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.