Regex pour UUID

Utilisez /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/ pour vérifier qu'une chaîne entière est un UUID valide. Chaque exemple ci-dessous est testé avec ce motif, et vous pouvez l'ouvrir dans le testeur de regex avec les échantillons préchargés.

Mis à jour le

/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/
Ouvrir dans le testeur de regex
EntréeRésultat
123e4567-e89b-12d3-a456-426614174000✓ Correspondance
550e8400-e29b-41d4-a716-446655440000✓ Correspondance
01890a5d-ac96-774b-bcce-b302099a8057✓ Correspondance
123e4567e89b12d3a456426614174000✗ Aucune correspondance
123e4567-e89b-02d3-a456-426614174000✗ Aucune correspondance
zzzzzzzz-e89b-12d3-a456-426614174000✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
[0-9a-fA-F]{8}Huit chiffres hexadécimaux
[1-8][0-9a-fA-F]{3}Le troisième groupe commence par la version, de 1 à 8
[89abAB][0-9a-fA-F]{3}Le quatrième groupe commence par la variante RFC 9562 : 8, 9, a ou b
[0-9a-fA-F]{12}Douze chiffres hexadécimaux à la fin
-Tirets aux positions 8-4-4-4-12

Exemples de code

JavaScript

const re = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}', value))

PHP

preg_match('/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/', $value) === 1;

Remarques et limites

Pour n'accepter que les UUID de version 4 (aléatoires), remplacez [1-8] par 4. Générez des valeurs de test avec le Générateur d'UUID.

Questions fréquentes

Quelle est la regex pour un UUID ?
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : 123e4567-e89b-12d3-a456-426614174000, 550e8400-e29b-41d4-a716-446655440000, 01890a5d-ac96-774b-bcce-b302099a8057. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le motif, les indicateurs et le texte d'exemple se chargent automatiquement, et les correspondances se surlignent pendant que vous modifiez.