Aide-mémoire syntaxe regex : classes de caractères, quantificateurs et assertions en un coup d'œil

正则表达式语法速查表:字符类、量词、断言一网打尽

« À chaque fois que j'écris une regex, je dois chercher la syntaxe — que signifie \b déjà ? Le lookahead c'est (?=) ou (?<=) ? Faut-il échapper les tirets dans les classes de caractères ? » — la regex a tellement de détails syntaxiques qu'il est normal de les oublier.

Cet aide-mémoire organise toute la syntaxe regex courante par catégorie avec des tableaux et des exemples pour une consultation rapide. Mettez cette page en favoris et cessez de chercher à chaque fois.

01 Classes de caractères

Les classes de caractères correspondent à des catégories spécifiques de caractères. Ce sont les éléments les plus fondamentaux et les plus fréquemment utilisés des regex. Le tableau ci-dessous liste toutes les classes courantes et leur signification.

Référence rapide des classes de caractères

SyntaxeSignificationExemple
.Tout caractère sauf saut de lignea.c → abc, a1c, a-c
\dChiffre [0-9]\d{3} → 123, 456
\DNon-chiffre [^0-9]\D+ → abc, hello
\wCaractère de mot [a-zA-Z0-9_]\w+ → hello_world
\WNon-caractère de mot\W → @, #, !, espace
\sEspace blanc (espace, tabulation, saut de ligne)a\sb → « a b », « a\tb »
[abc]Ensemble de caractères — correspond à a, b ou c[aeiou] → correspond aux voyelles
[^abc]Ensemble négatif — tout caractère sauf a, b, c[^0-9] → correspond aux non-chiffres
[a-z]Plage — minuscules de a à z[A-Za-z] → toutes les lettres

02 Quantificateurs

Les quantificateurs contrôlent combien de fois le caractère ou groupe précédent peut se répéter. Ils sont gourmands par défaut (correspondre autant que possible) ; ajoutez ? après le quantificateur pour le mode paresseux (correspondre aussi peu que possible).

Référence rapide des quantificateurs

SyntaxeSignificationVersion paresseuse
*Zéro ou plus*?
+Un ou plus+?
?Zéro ou un??
{n}Exactement n fois
{n,}n fois ou plus{n,}?
{n,m}Entre n et m fois{n,m}?

03 Ancres et limites

Les ancres ne correspondent pas aux caractères eux-mêmes mais aux positions entre les caractères. Elles contraignent les correspondances à des emplacements spécifiques (début de ligne, fin de ligne, limites de mots).

Référence rapide des ancres

SyntaxeSignificationExemple
^Début de ligne (ou chaîne)^Hello → Hello uniquement en début de ligne
$Fin de ligne (ou chaîne)world$ → world uniquement en fin de ligne
\bLimite de mot\bcat\b → correspond à « cat » pas à « catch »
\BNon-limite de mot\Bcat → correspond à « cat » dans « scat »

04 Groupes et assertions

Les groupes utilisent des parenthèses pour combiner plusieurs caractères en une seule unité pour la répétition, la capture ou la correspondance conditionnelle. Les assertions (aussi appelées assertions de largeur zéro) correspondent à des positions sans consommer de caractères.

Référence rapide des groupes et assertions

SyntaxeSignificationExemple
(abc)Groupe de capture(\d+)px → capture les chiffres
(?:abc)Groupe non capturant(?:jpg|png) → groupe sans capturer
(?<name>abc)Groupe de capture nommé(?<year>\d{4}) → groups["year"]
a|bAlternation (ou)cat|dog → correspond à cat ou dog
(?=abc)Assertion prospective positive\d+(?=px) → chiffres suivis de px
(?!abc)Assertion prospective négative\d+(?!px) → chiffres NON suivis de px
(?<=abc)Assertion rétrospective positive(?<=\$)\d+ → chiffres après $
(?<!abc)Assertion rétrospective négative(?<!\$)\d+ → chiffres NON précédés de $

05 Séquences spéciales et échappements

Certains caractères en regex ont des significations spéciales. Pour les correspondre littéralement, échappez-les avec un antislash \. Voici la liste des caractères spéciaux et séquences à retenir.

  • Caractères spéciaux nécessitant un échappement : . * + ? ^ $ { } [ ] ( ) | \
  • \n — saut de ligne
  • \t — tabulation
  • \r — retour chariot
  • \0 — caractère null
  • \uXXXX — caractère Unicode (ex. \u4e2d correspond à « 中 »)
  • \p{Script=Han} — correspondance propriété Unicode (nécessite le drapeau u, correspond aux caractères chinois)

FAQ

Quelle est la différence entre \d et [0-9] ?

En JavaScript, \d est équivalent à [0-9] par défaut. Mais dans certains moteurs avec le mode Unicode (drapeau u), \d peut correspondre à des chiffres d'autres scripts (comme l'arabe ٣). Si vous ne voulez que 0-9, utilisez explicitement [0-9].

Comment correspondre aux caractères chinois ?

Utilisez la correspondance de propriétés Unicode : /\p{Script=Han}/u. La méthode traditionnelle [\u4e00-\u9fa5] ne couvre que le bloc de base des idéogrammes CJK unifiés et peut manquer les caractères des extensions. La correspondance de propriétés Unicode est plus précise et complète.

Y a-t-il des limitations sur le lookahead et le lookbehind ?

En JavaScript (ES2018+), le lookahead et le lookbehind sont entièrement pris en charge. Mais dans certains moteurs plus anciens ou langages, le lookbehind peut ne pas supporter les motifs de longueur variable. Suried Regex Tester utilise un moteur JavaScript moderne avec support complet des assertions.

Le ^ a-t-il deux significations différentes en regex ?

Oui. En dehors des classes de caractères [...], ^ est une ancre de début de ligne ; à l'intérieur de [...] en première position, ^ inverse la classe. Par exemple, ^abc correspond à « abc » en début de ligne, tandis que [^abc] correspond à tout caractère sauf a, b ou c.

Cet aide-mémoire couvre-t-il toute la syntaxe regex ?

Ce tableau couvre plus de 95 % de la syntaxe regex nécessaire au développement quotidien. Certaines fonctionnalités avancées comme la correspondance conditionnelle (?(1)a|b), les groupes atomiques (?>...) et les motifs récursifs sont des extensions PCRE non supportées nativement en JavaScript et ne sont pas incluses.

📋

Try the Tool Now

Cet aide-mémoire organise toute la syntaxe regex courante par catégorie avec des tableaux et des exemples pour une consultation rapide. Mettez cette page en favoris et cessez de chercher à chaque fois.

TOOLS.SURIED.COM