Testeur de regex
Saisissez un motif et un texte sur lequel le tester : chaque correspondance est surlignée pendant que vous tapez.
Exemples
Utilisez $1 ou $<name> pour les groupes, $& pour la correspondance entière et $$ pour un signe dollar.
Éléments courants
- .
- n’importe quel caractère sauf un saut de ligne
- \d
- un chiffre de 0 à 9
- \w
- une lettre a–z, un chiffre ou un tiret bas
- \s
- espace, tabulation ou saut de ligne
- \D \W \S
- le contraire de \d, \w et \s
- \b
- limite entre un caractère de mot et un autre caractère
- ^
- début du texte, ou de la ligne avec m
- $
- fin du texte, ou de la ligne avec m
- [abc] [a-z]
- l’un des caractères, ou un caractère de l’intervalle
- [^abc]
- aucun des caractères
- a|b
- a ou b
- (…)
- groupe capturant
- (?:…)
- groupe non capturant
- (?<name>…)
- groupe nommé
- \1 \k<name>
- le même texte que le groupe 1 ou que le groupe appelé name
- *
- zéro fois ou plus
- +
- une fois ou plus
- ?
- zéro ou une fois
- {3} {2,5} {2,}
- exactement 3 fois, de 2 à 5 fois, ou au moins 2 fois
- *? +? ??
- le moins de fois possible
- (?=…)
- suivi de
- (?!…)
- non suivi de
- (?<=…) (?<!…)
- précédé de, non précédé de
- \p{L}
- une lettre de n’importe quelle écriture (nécessite u ou v)
Comment ça marche
Une expression régulière est un motif qui décrit du texte. \d+ signifie un ou plusieurs chiffres, [a-z] une lettre de a à z et ^ le début du texte. Le motif est essayé sur le texte de gauche à droite, et chaque endroit où il convient est une correspondance.
Le testeur utilise le moteur de votre navigateur, c’est-à-dire la variante des expressions régulières définie par la norme ECMAScript pour JavaScript. Elle diffère de PCRE, de Python et de .NET sur quelques points : il n’y a par exemple ni quantificateurs possessifs ni groupes atomiques, et un lookbehind peut avoir n’importe quelle longueur.
Les drapeaux modifient la lecture du motif. g trouve toutes les correspondances et pas seulement la première, i ignore la différence entre majuscules et minuscules, m applique ^ et $ à chaque ligne et s permet au point de correspondre aux sauts de ligne. u lit le texte comme des caractères Unicode plutôt que des unités UTF-16, et v est une version plus stricte de u, issue d’ECMAScript 2024, avec des opérations d’ensemble dans les classes de caractères. y exige que chaque correspondance commence exactement là où la précédente s’est arrêtée, et d enregistre les positions des groupes.
Les parenthèses capturent ce qu’elles ont trouvé et sont numérotées d’après leur parenthèse ouvrante, en partant de la gauche. (?<name>…) donne un nom à un groupe, et (?:…) regroupe sans capturer. Dans le remplacement, $1 représente le groupe 1, $<name> un groupe nommé, $& la correspondance entière et $$ un signe dollar. Sans le drapeau g, seule la première correspondance est remplacée.
Certains motifs prennent un temps extrêmement long, comme (a+)+$ appliqué à une longue suite de a suivie d’un autre caractère. Le moteur essaie alors des combinaisons dont le nombre croît de façon exponentielle avec la longueur du texte : c’est le retour arrière catastrophique. Ici, la recherche tourne dans un fil d’exécution séparé qui est arrêté au bout de deux secondes, afin que la page ne se fige pas. Dans un programme sur un serveur, le même motif peut devenir un risque de sécurité (ReDoS).
Les positions sont comptées en unités UTF-16, comme en JavaScript, si bien qu’un emoji compte pour deux. Une correspondance vide, comme ^ ou \b, est marquée par un trait fin. Votre texte ne quitte jamais votre navigateur.