developer reference

Regex cheat sheet

Référence pratique pour utiliser Regex au quotidien avec recherche, copie rapide et impression PDF.

Voir les commandes
35
commandes
7
catégories
0
dépendances

Tester regex live

JS RegExp

Ce test utilise JavaScript RegExp avec recherche globale (g). Utilisez (?<name>...) pour les groupes nommés. La syntaxe et les options Python re ci-dessous s’exécutent en Python, pas dans ce test. Limites : 100 000 caractères de texte, 4 000 de motif et 1 000 correspondances ; les motifs lents sont arrêtés.

Output match

35 commandes visibles

Ancres

4 commandes
^

Debut de ligne ou de chaine

Anchorsûr
Exemple pratique
^Hello  # trouve "Hello world" mais pas "say Hello"
$

Fin de ligne ou de chaine

Anchorsûr
Exemple pratique
world$  # trouve "Hello world" mais pas "world class"
\b

Limite de mot: frontiere mot/non-mot

Anchorsûr
Exemple pratique
\bcat\b  # "cat" mais pas "catch" ni "concat"
\B

Frontiere non-mot

Anchorsûr
Exemple pratique
\Bcat\B  # "concatenate" mais pas " cat "

Quantificateurs

5 commandes
*

0 ou plusieurs fois (greedy)

Quantificatorisûr
Exemple pratique
ab*c  # "ac", "abc", "abbc", "abbbc"…
+

1 ou plusieurs fois (greedy)

Quantificatorisûr
Exemple pratique
ab+c  # "abc", "abbc" mais PAS "ac"
?

0 ou 1 fois (optionnel)

Quantificatorisûr
Exemple pratique
colou?r  # "color" et "colour"
{n,m}

Entre n et m fois

Quantificatorisûr
Exemple pratique
\d{2,4}  # 2, 3 ou 4 chiffres
\d{3}    # exactement 3 chiffres
*? +? ??

Versions lazy (non-greedy)

Quantificatorisûr
Exemple pratique
# entrée : "<b>bold</b>"
<.+>   # gourmand : "<b>bold</b>"
<.+?>  # non gourmand : "<b>" puis "</b>"

Classes

5 commandes
[abc]

Classe de caracteres: un des caracteres listes

Classisûr
Exemple pratique
[aeiou]  # toute voyelle
[a-z]  # a-z minuscules
[A-Za-z0-9]
[^abc]

Negation: tout caractere sauf ceux listes

Classisûr
Exemple pratique
[^0-9]  # pas des chiffres
\d \w \s

Raccourcis: \d chiffre, \w mot, \s espace

Classisûr
Exemple pratique
\d  # [0-9]
\w  # [a-zA-Z0-9_]
\s  # [ \t\n\r]
\D \W \S

Raccourcis negatifs

Classisûr
Exemple pratique
\D  # pas un chiffre
\W  # pas un caractère de mot
\S  # pas un espace
.

Tout caractère sauf les fins de ligne ; l’option s (Python re.S) inclut les sauts de ligne

Classisûr
Exemple pratique
a.b  # "aXb", "a b", "a1b"…

Gruppi

6 commandes
(...)

Groupe capturant: capture le match

Gruppisûr
Exemple pratique
(\d{4})-(\d{2})-(\d{2})
# trouve "2024-01-15", group(1)="2024"
(?:...)

Groupe non capturant: groupe sans capturer

Gruppisûr
Exemple pratique
(?:Mr|Mrs|Ms)\.\s\w+
# regroupe les alternatives sans capture
(?<name>...)

Groupe nomme: capture avec un nom

Gruppisûr
Exemple pratique
JavaScript: (?<year>\d{4})-(?<month>\d{2})
match.groups.year

Python: (?P<year>\d{4})-(?P<month>\d{2})
m.group("year")
a|b

Alternative: a ou b

Gruppisûr
Exemple pratique
cat|dog  # "cat" ou "dog"
(https?|ftp)://
(?=...) (?!...)

Lookahead positif et negatif

Gruppisûr
Exemple pratique
\d+(?= euro)  # nombre suivi de " euro" (sans capturer " euro")
\d+(?! euro)  # nombre NON suivi de " euro"
(?<=...) (?<!...)

Lookbehind positif et negatif

Gruppisûr
Exemple pratique
(?<=\$)\d+  # nombre précédé de "$"

Python re

6 commandes
re.search (pattern, string)

Trouve la premiere occurrence n'importe ou

Python resûr
Exemple pratique
import re
m = re.search(r"\d+", "abc 123 def")
if m:
    print(m.group())  # "123"
re.match (pattern, string)

Correspond seulement au debut de la chaine

Python resûr
Exemple pratique
re.match(r"\d+", "123abc")  # correspondance
re.match(r"\d+", "abc123")  # None
re.findall (pattern, string)

Retourne la liste de tous les matchs

Python resûr
Exemple pratique
re.findall(r"\d+", "1 apple, 2 bananas, 3 pears")
# → ["1", "2", "3"]
re.sub (pattern, repl, string)

Remplace les matchs par repl

Python resûr
Exemple pratique
re.sub(r"\s+", " ", "too  many   spaces")
# → "too many spaces"
re.sub(r"(\w+)", r"[\1]", "hello world")
# → "[hello] [world]" (référence arrière)
re.split (pattern, string)

Decoupe une chaine sur les matchs du motif

Python resûr
Exemple pratique
re.split(r"[,;\s]+", "a, b; c  d")
# → ["a", "b", "c", "d"]
re.compile (pattern, flags)

Precompile un motif pour usage repete

Python resûr
Exemple pratique
EMAIL = re.compile(r"[\w.+-]+@[\w-]+\.[\w.]+")
for line in lines:
    if EMAIL.search(line): ...

Flag

4 commandes
re.IGNORECASE

Correspondance insensible a la casse

Flagsûr
Exemple pratique
re.findall(r"hello", text, re.I)
re.compile(r"hello", re.IGNORECASE)
re.MULTILINE

^ et $ correspondent au debut/fin de chaque ligne

Flagsûr
Exemple pratique
re.findall(r"^\w+", text, re.M)
re.DOTALL

Le point (.) correspond aussi au newline

Flagsûr
Exemple pratique
re.search(r"<div>.+?</div>", html, re.S)
re.VERBOSE

Autorise les commentaires dans le motif (re.X)

Flagsûr
Exemple pratique
pattern = re.compile(r"""
    \d{4}  # année
    -
    \d{2}  # mois
""", re.X)

Pattern pronti

5 commandes

Email

[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}

Motif simplifié d’adresse e-mail ; ne constitue pas une validation complète

Pattern prontisûr
Exemple pratique
[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}

URL

https?://[\w/:%#$&?()~.=+\-]+

Motif simplifié d’URL HTTP/HTTPS ; ne remplace pas un analyseur complet

Pattern prontisûr
Exemple pratique
https?://[\w/:%#$&?()~.=+\-]+

IPv4

\b(?:\d{1,3}\.){3}\d{1,3}\b

Motif de forme IPv4 ; ne vérifie pas les plages des octets (0–255)

Pattern prontisûr
Exemple pratique
\b(?:\d{1,3}\.){3}\d{1,3}\b

Data ISO

\b\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])\b

Motif de forme YYYY-MM-DD ; ne vérifie pas les dates du calendrier

Pattern prontisûr
Exemple pratique
\b\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])\b

Telephone italien

(?:\+39)?[\s-]?(?:0\d{1,4}|3\d{2})[\s-]?\d{6,8}

Motif simplifié de numéro italien ; ne confirme pas sa validité ou son attribution

Pattern prontisûr
Exemple pratique
(?:\+39)?[\s-]?(?:0\d{1,4}|3\d{2})[\s-]?\d{6,8}

Comment utiliser cette cheat sheet Regex

Puis-je tester ici des expressions régulières Python ?

Le test utilise JavaScript RegExp. Les syntaxes Python comme (?P<name>...) et re.VERBOSE doivent être testées en Python. Les motifs prêts illustrent des formats, pas une validation complète.

Puis-je imprimer cette fiche en PDF ?

Utilisez Imprimer PDF. La version imprimable comprend toutes les commandes et les exemples, même dans les sections masquées par la recherche.

Puis-je l’utiliser en local ?

Oui. Servez les fichiers statiques avec un serveur HTTP local. Recherche, filtres et copie fonctionnent dans le navigateur ; le test Regex nécessite un contexte HTTP autorisant les workers.