Aide-mémoire des regex

Aide-mémoire interactif des expressions régulières : classes de caractères, ancres, quantificateurs, groupes, assertions, échappements, drapeaux et remplacements.

Classes de caractères

.
N'importe quel caractère sauf un saut de ligne (n'importe lequel avec le drapeau s)
a.c → abc, a-c
\d
Un chiffre 0–9 (uniquement ASCII, même avec le drapeau u)
\d+ → 2024
\D
Tout caractère qui n'est pas un chiffre
\w
Un caractère de mot : A–Z, a–z, 0–9 ou _
\w+ → user_42
\W
Tout caractère qui n'est pas un caractère de mot
\s
Blanc : espace, tabulation, sauts de ligne et espaces Unicode
\S
Tout caractère qui n'est pas un blanc
[abc]
L'un des caractères listés
[aeiou] → e
[^abc]
Tout caractère sauf ceux listés
[a-z]
Un caractère de la plage (ici de a à z)
[0-9a-f]+ → ff00
\p{L}
N'importe quelle lettre de n'importe quelle écriture (drapeau u requis)
\p{L}+ (u) → Việt
\p{Script=Han}
Un caractère d'une écriture donnée, p. ex. Han, Latin, Cyrillic (drapeau u requis)

Ancres

^
Début du texte (début de chaque ligne avec le drapeau m)
$
Fin du texte (fin de chaque ligne avec le drapeau m)
\b
Limite de mot
\bcat\b → cat (not concat)
\B
Pas une limite de mot

Quantificateurs

*
0 fois ou plus (gourmand)
+
1 fois ou plus (gourmand)
?
0 ou 1 fois (facultatif)
colou?r → color, colour
{n}
Exactement n fois
\d{4} → 2024
{n,}
n fois ou plus
{n,m}
Entre n et m fois
*? +? ??
Versions paresseuses : le moins de caractères possible
<.+?> → <b>

Groupes et références

(abc)
Groupe capturant, accessible via $1, $2…
(?:abc)
Groupe non capturant
(?<name>abc)
Groupe capturant nommé
(?<y>\d{4}) → y = 2024
\1
Répète le texte capturé par le groupe 1
(\w)\1 → ll in hello
\k<name>
Répète le texte capturé par un groupe nommé
a|b
L'alternative de gauche ou celle de droite
cat|dog → dog

Assertions avant/arrière

(?=abc)
Suivi de abc (non inclus dans la correspondance)
\d+(?=px) → 12 in 12px
(?!abc)
Non suivi de abc
(?<=abc)
Précédé de abc (non inclus dans la correspondance)
(?<=\$)\d+ → 5 in $5
(?<!abc)
Non précédé de abc

Échappements

\. \* \\
Échappe un caractère spécial pour le rechercher tel quel
\n \t \r
Saut de ligne, tabulation, retour chariot
\uFFFF
Caractère par code hexadécimal à 4 chiffres
\u{1F600}
Caractère par point de code (drapeau u requis)

Drapeaux

g
Trouve toutes les correspondances, pas seulement la première
i
Insensible à la casse
m
^ et $ correspondent au début et à la fin de chaque ligne
s
Le point correspond aussi aux sauts de ligne
u
Mode Unicode complet : \p{…}, \u{…}, un emoji compte pour un caractère
y
Correspond uniquement à lastIndex (sticky)
d
Fournit les indices de début et de fin de chaque groupe

Motifs de remplacement

$1
Texte du groupe capturant 1
$<name>
Texte d'un groupe nommé
$&
La correspondance entière
$` $'
Texte avant / après la correspondance
$$
Un signe $ littéral

Outils Connexes

Voir Tout

Qu'est-ce que Aide-mémoire des regex ?

Une référence compacte et filtrable de la syntaxe des expressions régulières JavaScript (ECMAScript). Elle couvre les classes de caractères, les échappements de propriétés Unicode, les ancres, les quantificateurs (gourmands et paresseux), les groupes et références arrière, les assertions avant et arrière, les échappements, les sept drapeaux et les motifs spéciaux utilisables dans les chaînes de remplacement, avec de courts exemples.

Comment utiliser Aide-mémoire des regex

  1. Parcourez les sections, ou saisissez dans la zone de recherche pour filtrer par élément (p. ex. \b) ou par mots de la description (p. ex. « lookbehind »).
  2. Lisez la description et l’exemple sous chaque élément.
  3. Essayez le motif dans le testeur de regex.

Exemple

Entrée
Search: \d
Sortie
\d – A digit 0–9 (with the u flag still only ASCII digits); \D – Any character that is not a digit

Recherche de \d : l’entrée « \d » désigne un chiffre 0–9, et « \D » tout caractère qui n’est pas un chiffre.

Quand utiliser Aide-mémoire des regex

Utilisez-le pour écrire des regex pour JavaScript, TypeScript, Node.js et la plupart des moteurs de regex modernes. La syntaxe propre à certains moteurs (quantificateurs possessifs, groupes atomiques, \A, \z, modificateurs en ligne de PCRE/Python) n’est pas listée car JavaScript ne la prend pas en charge.

Comment fonctionne Aide-mémoire des regex

Les entrées sont regroupées par thème. La zone de recherche filtre les entrées dont l’élément ou la description traduite contient votre texte, sans tenir compte de la casse. Les descriptions reflètent le comportement d’ECMAScript : par exemple \d ne correspond qu’aux chiffres ASCII même avec le drapeau u, \p{…} exige le drapeau u, et . ne correspond pas aux sauts de ligne sauf si le drapeau s est activé.

Cas d'utilisation courants

  • Retrouver la syntaxe d’un groupe nommé ou d’une assertion arrière
  • Se rappeler ce que fait chaque drapeau de regex
  • Vérifier des motifs de remplacement comme $& et $<name>
  • Enseigner les bases des regex avec des exemples

Questions Fréquentes

\w correspond-il aux lettres accentuées ?

Non. En JavaScript, \w ne désigne que A–Z, a–z, 0–9 et _. Utilisez \p{L} avec le drapeau u pour trouver les lettres de n’importe quelle langue.

Quelle différence entre quantificateurs gourmands et paresseux ?

Les quantificateurs gourmands (*, +, {n,}) correspondent au maximum possible ; ajouter ? (*?, +?) les fait correspondre au minimum, p. ex. <.+?> correspond à une seule balise au lieu de tout jusqu’au dernier >.

JavaScript prend-il en charge l’assertion arrière (lookbehind) ?

Oui, (?<=…) et (?<!…) sont pris en charge par tous les navigateurs modernes et par Node.js.

Explorer d'autres catégories