Aller au contenu
ToolMug

Expressions régulières courantes

Des expressions régulières prêtes à l'emploi pour les validations du quotidien — email, URL, domaine, adresses IPv4 et MAC, entiers, décimaux et montants, dates et heures, noms d'utilisateur, mots de passe forts, couleurs hexadécimales, UUID et versions sémantiques, plus les formats chinois de téléphone, carte d'identité et code postal. Chaque motif est accompagné d'une description et d'exemples valides et invalides ; copiez-le en un clic ou tapez dans le champ pour le tester.

Fonctionne dans votre navigateur — rien de ce que vous saisissez n’est envoyé

  • Adresse e-mail

    Format d’e-mail courant avec points, signes plus et domaines à plusieurs niveaux

    /^[\w.+-]+@[\w-]+(\.[\w-]+)+$/

    ✓ name@example.com a.b+tag@mail.co.uk✗ name@ @example.com a b@example.com

  • URL (http/https)

    Commence par http:// ou https:// et ne contient pas d’espaces

    /^https?:\/\/[^\s/$.?#][^\s]*$/i

    ✓ https://example.com/path?q=1 http://localhost:8080✗ ftp://example.com example.com https:// bad

  • Nom de domaine

    Domaine à plusieurs niveaux composé de lettres, de chiffres et de tirets

    /^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/

    ✓ example.com sub.example.co.uk✗ -bad.com example exa_mple.com

  • Adresse IPv4

    Quatre nombres de 0 à 255 sans zéro non significatif

    /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/

    ✓ 192.168.1.1 8.8.8.8 255.255.255.0✗ 256.1.1.1 1.2.3 01.2.3.4

  • Adresse MAC

    Six paires de chiffres hexadécimaux séparées par des deux-points ou des tirets

    /^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/

    ✓ 00:1A:2B:3C:4D:5E 00-1a-2b-3c-4d-5e✗ 001A2B3C4D5E 00:1A:2B:3C:4D

  • Numéro de mobile chinois

    11 chiffres commençant par 13 à 19, sans +86

    /^1[3-9]\d{9}$/

    ✓ 13800138000 19912345678✗ 12345678901 1380013800 +8613800138000

  • Ligne fixe chinoise

    Code régional plus numéro, séparés ou non par un tiret

    /^0\d{2,3}-?\d{7,8}$/

    ✓ 010-12345678 0755-1234567 02112345678✗ 12345678 010-123

  • Carte d’identité chinoise (18 chiffres)

    Vérifie la longueur du code régional et la date de naissance ; le dernier caractère peut être X. Le chiffre de contrôle n’est pas vérifié.

    /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/

    ✓ 11010519491231002X 440308199901010012✗ 11010519491331002X 1101051949123100

  • Code postal chinois

    Six chiffres

    /^\d{6}$/

    ✓ 100000 010000✗ 10000 1000000

  • Plaque d’immatriculation chinoise

    7 caractères pour les plaques classiques, 8 pour les véhicules à énergie nouvelle

    /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/

    ✓ 京A12345 粤BD12345 沪A1234学✗ 京12345 京AI2345

  • Caractères chinois uniquement

    Idéogrammes CJK courants uniquement

    /^[\u4e00-\u9fa5]+$/

    ✓ 中文 正则表达式✗ 中文abc

  • Numéro QQ

    5 à 11 chiffres, ne commençant pas par 0

    /^[1-9]\d{4,10}$/

    ✓ 10001 123456789✗ 01234 1234

  • Numéro de carte bancaire

    16 à 19 chiffres ; la validité nécessite aussi une vérification de Luhn

    /^[1-9]\d{15,18}$/

    ✓ 6222021234567890123 4111111111111111✗ 0222021234567890 622202123456

  • Entier

    Éventuellement négatif

    /^-?\d+$/

    ✓ 0 -42 12345✗ 1.5 1e3

  • Entier positif

    Sans zéro non significatif

    /^[1-9]\d*$/

    ✓ 1 100✗ 0 01 -1

  • Nombre décimal

    Éventuellement négatif, avec des chiffres des deux côtés du point

    /^-?\d+(?:\.\d+)?$/

    ✓ 3.14 -0.5 42✗ .5 1. 1,000

  • Montant monétaire

    Non négatif, avec jusqu’à deux décimales

    /^(?:0|[1-9]\d*)(?:\.\d{1,2})?$/

    ✓ 0 99.9 1234.56✗ 01.00 1.234 -1

  • Date (AAAA-MM-JJ)

    Mois 01 à 12 et jour 01 à 31 ; la durée des mois n’est pas vérifiée

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

    ✓ 2026-09-26 1999-12-31✗ 2026-13-01 2026-9-26 26-09-2026

  • Heure (HH:MM[:SS])

    Format 24 heures, secondes facultatives

    /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/

    ✓ 09:30 23:59:59✗ 24:00 9:30 12:60

  • Nom d’utilisateur

    Commence par une lettre ; 4 à 16 lettres, chiffres ou underscores

    /^[a-zA-Z][a-zA-Z0-9_]{3,15}$/

    ✓ alice_01 Bob2026✗ 1alice ab bad-name

  • Mot de passe fort

    Au moins 8 caractères avec majuscules, minuscules, un chiffre et un symbole

    /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w\s]).{8,}$/

    ✓ Passw0rd! Aa1@aaaa✗ password Password1 Aa1@

  • Couleur hexadécimale

    #RGB ou #RRGGBB

    /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/

    ✓ #fff #0F766E✗ fff #ffff #12345g

  • UUID

    Format UUID standard (versions 1 à 8)

    /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i

    ✓ 123e4567-e89b-42d3-a456-426614174000✗ 123e4567-e89b-42d3-c456-426614174000 123e4567e89b42d3a456426614174000

  • Version sémantique

    MAJOR.MINOR.PATCH avec pré-version et métadonnées de build facultatives

    /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?(?:\+[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?$/

    ✓ 1.0.0 2.1.3-beta.1+build.5✗ 1.0 01.0.0 v1.0.0

  • Paire de balises HTML

    Trouve les balises d’ouverture et de fermeture correspondantes, en capturant le nom de la balise et le contenu

    /<([a-zA-Z][\w-]*)\b[^>]*>([\s\S]*?)<\/\1>/g

    ✓ <b>bold</b> <a href="#">link</a>✗ <b>unclosed plain text

  • Ligne vide

    Avec le drapeau m, trouve les lignes vides ou ne contenant que des espaces, par exemple pour les supprimer

    /^\s*$/m

    ✓ ✗ text

Les motifs utilisent la syntaxe JavaScript et fonctionnent dans la plupart des langages comme Java, Python et Go (attention à l’échappement des barres obliques inverses). Ils vérifient seulement le format ; savoir si un numéro d’identité ou de carte est réel nécessite une somme de contrôle ou une validation officielle.

Mode d’emploi

  1. Recherchez un format ou filtrez par catégorie.
  2. Cliquez sur Copier pour récupérer le motif ; doublez les barres obliques inverses si vous le mettez dans une chaîne de caractères.
  3. Tapez dans le champ sous une carte pour voir instantanément si le texte correspond.

Explication des options

Syntaxe
Écrite pour JavaScript et compatible avec la plupart des langages comme Java, Python, Go et PHP ; à l'intérieur de littéraux de chaîne, doublez les barres obliques inverses.
Correspondance sur toute la chaîne
Les motifs de validation sont ancrés avec ^ et $ pour que toute la saisie doive correspondre. Pour rechercher dans un texte plus long, retirez les ancres et ajoutez le drapeau g.
Format ou validité réelle
Un motif vérifie seulement le format. Savoir si un numéro de carte ou d'identité est réel nécessite une somme de contrôle ou une vérification officielle.

Comment un motif est construit : l’exemple de l’IPv4

Le motif IPv4 illustre la structure habituelle d’une regex de validation. Un octet s’écrit sous forme de quatre alternatives essayées dans l’ordre, chacune n’acceptant que 0–255 :

25[0-5]      250–255
2[0-4]\d     200–249
1\d\d        100–199
[1-9]?\d     0–99, with no leading zero

Le motif complet est (octet\.){3}octet, ancré avec ^ et $. C’est pourquoi 192.168.1.1 correspond alors que 256.1.1.1, 01.2.3.4 et 1.2.3 ne correspondent pas.

Le format n’est pas la validité

Un motif ne vérifie que la forme. Le motif de date accepte 2026-02-30 parce qu’il autorise le jour 30 dans tous les mois, et rejette 2026-13-01 parce que le mois 13 n’existe pas. Pour de vraies dates, analysez la valeur avec la bibliothèque de dates de votre langage après la vérification par regex.

Questions fréquentes

Pourquoi l'expression pour l'email n'est-elle pas totalement conforme à la RFC ?

Une expression pleinement conforme à la RFC 5322 est énorme et ne rejette que peu d'erreurs réelles. Utilisez une vérification souple et confirmez l'adresse avec un email de vérification.

Comment déboguer une expression régulière plus complexe ?

Utilisez le testeur de regex, qui surligne chaque correspondance et chaque groupe et peut tester des remplacements.

Ces motifs prennent-ils en charge Unicode ?

La plupart visent une saisie ASCII. Ajoutez le drapeau u et des échappements de propriété Unicode comme \p{L} pour accepter des lettres de n'importe quel alphabet.

Confidentialité

Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers et vos textes sont traités sur votre appareil et ne sont jamais envoyés à nos serveurs.

Outils similaires