Aide-mémoire Développement

Aide-mémoire des expressions régulières (regex)

La syntaxe des regex sur une page : classes de caractères, ancres, quantificateurs, groupes, assertions, drapeaux et motifs prêts à l'emploi, tous les exemples testés.

Dernière vérification:

AdSense Placeholder
Slot: header_reference_page
Sur cette page

Une expression régulière (regex) décrit un motif de texte. Elle sert à rechercher, valider ou remplacer du texte dans les éditeurs, les outils en ligne de commande et tous les langages de programmation. Essayez n'importe quel motif en direct dans le Testeur d'Expressions Régulières. Chaque exemple ci-dessous a été exécuté en JavaScript et en Python et donne le résultat indiqué.

Caractères et classes

Motif Signification Exemple
. un caractère quelconque sauf le saut de ligne a-c → a, -, c
\d+ un ou plusieurs chiffres (\d est un chiffre, \D non) a12b345 → 12, 345
\w+ caractères de mot : lettres, chiffres et tiret bas (\W est l'inverse) hi_there! ok → hi_there, ok
a\sb espace blanc : espace, tabulation, saut de ligne (\S est l'inverse) a b ab → a b
gr[ae]y un caractère de l'ensemble gray grey groy → gray, grey
[^0-9]+ tout ce qui n'est pas dans l'ensemble ab12cd3 → ab, cd
[a-f0-9]+ plages dans un ensemble ff09 xyz 1a → ff09, 1a

Ancres et limites

Motif Signification Exemple
^\d+$ ^ est le début et $ la fin : tout le texte doit correspondre 12345 → 12345
^\d+$ 12a45 → aucune correspondance
\bcat\b limite de mot : ne correspond à cat que comme mot entier cat concat cat. → cat, cat

Quantificateurs

Motif Signification Exemple
ab* * signifie zéro ou plus de l'élément précédent a ab abbb → a, ab, abbb
ab+ + signifie un ou plus a ab abbb → ab, abbb
colou?r ? signifie facultatif (zéro ou un) color colour → color, colour
\d{3} {n} signifie exactement n fois 12 123 12345 → 123, 123
\d{2,3} {n,m} signifie entre n et m fois 1 12 123 1234 → 12, 123, 123
<.+> gourmand (greedy) : prend le maximum <a><b> → <a><b>
<.+?> paresseux (lazy) : ajoutez ? pour prendre le minimum <a><b> → <a>, <b>

Groupes, alternance et assertions

Motif Signification Exemple
cat|dog | signifie l'un ou l'autre côté hotdog cat → dog, cat
(?:ab)+ un groupe non capturant, auquel on peut appliquer un quantificateur ababab ab → ababab, ab
(\w)\1 \1 répète ce qu'a capturé le groupe 1 hello book → ll, oo
(?<year>\d{4})-\d{2} un groupe nommé, (?<nom>...) (JavaScript et PCRE ; Python écrit (?P<nom>...)) on 2026-10-03 → 2026-10
\d+(?=%) anticipation (lookahead) : suivi de %, sans le consommer 50% 20 30% → 50, 30
foo(?!bar) anticipation négative : non suivi de bar foobar foobaz → foo
(?<=\$)\d+ rétrospection (lookbehind) : précédé de $, sans le consommer cost $15 or 20 → 15

Drapeaux (flags)

Drapeau Nom Effet
i Ignorer la casse cat correspond aussi à Cat et CAT
g Global Trouve toutes les correspondances, pas seulement la première
m Multiligne ^ et $ correspondent à chaque ligne, pas seulement au texte entier
s Le point inclut les sauts de ligne . correspond aussi à un saut de ligne
u Unicode Traite le motif comme de l'Unicode et active les classes \p{...}

Caractères à échapper

Ils ont un sens spécial : placez une barre oblique inverse devant pour les faire correspondre littéralement : . ^ $ * + ? ( ) [ ] { } | \. Par exemple, 3\.14 correspond à 3.14 mais pas à 3x14.

Motifs pratiques

Pour Motif Correspond à
Entier ^-?\d+$ 42, -7
Nombre décimal ^-?\d+(\.\d+)?$ 3.14, -2, 10
Couleur hexadécimale ^#(?:[0-9a-fA-F]{3}){1,2}$ #fff, #a1B2c3
E-mail (vérification approximative) ^[^\s@]+@[^\s@]+\.[^\s@]+$ [email protected], [email protected]
Adresse IPv4 ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|1?\d?\d)$ 192.168.1.1, 0.0.0.0, 255.255.255.255
Forme de date ISO ^\d{4}-\d{2}-\d{2}$ 2026-10-03
Mot répété \b(\w+)\s+\1\b the the, is is

Ces motifs vérifient la forme du texte. Une vraie adresse e-mail, par exemple, ne peut pas être entièrement validée par une regex : envoyez plutôt un message de confirmation.

Pièges

  • La correspondance gourmande prend le maximum ; ajoutez ? après un quantificateur pour la rendre paresseuse.
  • Retour arrière catastrophique. Des quantificateurs imbriqués comme (a+)+ peuvent prendre un temps exponentiel sur certaines entrées. Gardez des motifs simples quand ils s'exécutent sur du texte non fiable.
  • Les dialectes diffèrent. JavaScript, Python, PCRE (PHP et beaucoup d'outils) et POSIX acceptent une syntaxe légèrement différente, surtout pour les groupes nommés, la rétrospection et l'Unicode.
  • N'analysez pas du HTML avec une regex. Utilisez un vrai analyseur pour les structures imbriquées.

Essayez ces outils

Voir aussi

  • Glossaire Expression régulière (regex)
    Une expression régulière (regex) est un motif écrit dans une syntaxe compacte qui décrit un ensemble de chaînes, utilisé pour rechercher.
AdSense Placeholder
Slot: footer_leaderboard