Aller au contenu
🛠️ToolsShed

Regex Cheat Sheet

Référence des expressions régulières interactives avec test de modèle en direct et exemples à copier en un clic.

Testeur en Direct

Anchors

MotifDescription
^Start of string / line
$End of string / line
\bWord boundary
\BNon-word boundary
\AStart of string only
\ZEnd of string only

Quantifiers

MotifDescription
*0 or more times
+1 or more times
?0 or 1 time (optional)
{n}Exactly n times
{n,}n or more times
{n,m}Between n and m times
*?Lazy 0 or more
+?Lazy 1 or more

Character Classes

MotifDescription
.Any character except newline
\dDigit [0-9]
\DNon-digit
\wWord char [a-zA-Z0-9_]
\WNon-word character
\sWhitespace
\SNon-whitespace
[abc]Character set — a, b, or c
[^abc]Negated set — not a, b, or c
[a-z]Character range

Groups & Alternation

MotifDescription
(abc)Capturing group
(?:abc)Non-capturing group
(?<name>abc)Named capturing group
(?=abc)Positive lookahead
(?!abc)Negative lookahead
(?<=abc)Positive lookbehind
(?<!abc)Negative lookbehind
a|bAlternation — a or b

Flags

MotifDescription
gGlobal — find all matches
iCase-insensitive
mMultiline — ^ and $ match line boundaries
sDotall — . matches newline too
uUnicode mode
ySticky — match at exact position

Common Patterns

MotifDescription
^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$Email address
https?:\/\/[\w\-._~:/?#[\]@!$&'()*+,;=%]+URL (http/https)
^\+?[1-9]\d{1,14}$Phone number (E.164)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$Date (YYYY-MM-DD)
^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$IPv4 address
^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$UUID v4
^#(?:[0-9a-fA-F]{3}){1,2}$Hex color code
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$Strong password (min 8 chars, upper+lower+digit)

Cliquez sur un motif pour le charger dans le testeur

À propos de cet outil

Les expressions régulières sont un langage puissant de correspondance de motifs utilisé en programmation, traitement de données, analyse de texte et d'innombrables applications. L'apprentissage des regex peut sembler accablant en raison de sa syntaxe concise et de ses nombreux caractères spéciaux, mais comprendre les fondamentaux——ancres, quantificateurs, classes de caractères, groupes et lookarounds——permet de résoudre les problèmes de texte complexes avec élégance. Ce Pense-bête Regex réunit les motifs et concepts les plus essentiels dans une référence interactive.

Parcourez simplement les motifs et concepts sélectionnés groupés par catégorie : ancres (^, $, \b), quantificateurs (*, +, ?, {n,m}), classes de caractères ([...], \d, \s), groupes et captures (..., ?:...), et lookarounds (lookaheads et lookbehinds positifs et négatifs). Le testeur de motifs en direct vous permet d'entrer votre propre chaîne de test et votre regex pour voir les correspondances mises en évidence en temps réel. Copiez n'importe quel motif en un seul clic et collez-le directement dans votre code ou outil de débogage regex.

Mettez cet outil en signet chaque fois que vous avez besoin d'un rappel rapide sur la syntaxe. Que vous validiez des adresses e-mail, analysiez des fichiers journaux, extraiyez des données de HTML, nettoyiez des chaînes désordonnées ou recherchiez du code, les expressions régulières sont indispensables. Les motifs affichés sont compatibles avec la plupart des langages (JavaScript, Python, Java, Go, etc.), bien que certaines fonctionnalités avancées varient légèrement selon les implémentations.

Questions Fréquentes

Implémentation du Code

import re

# Common regex patterns
email_pattern = r'^[w.-]+@[w.-]+.[a-zA-Z]{2,}$'
url_pattern = r'https?://[w-._~:/?#[]@!$&'()*+,;=%]+'
ipv4_pattern = r'^(?:(?:25[0-5]|2[0-4]d|[01]?dd?).){3}(?:25[0-5]|2[0-4]d|[01]?dd?)$'

# Test email
email = "user@example.com"
if re.match(email_pattern, email):
    print(f"{email} is valid")

# Find all matches
text = "Contact us at info@example.com or support@test.org"
emails = re.findall(r'[w.-]+@[w.-]+.[a-zA-Z]{2,}', text)
print("Found emails:", emails)

# Named groups
date_text = "Today is 2024-03-15"
match = re.search(r'(?P<year>d{4})-(?P<month>d{2})-(?P<day>d{2})', date_text)
if match:
    print(f"Year: {match.group('year')}, Month: {match.group('month')}")

# Substitution
result = re.sub(r's+', ' ', "hello   world   foo").strip()
print(result)  # "hello world foo"

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.