Regex para UUID

Usa /^[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}$/ para comprobar que una cadena completa es un UUID válido. Cada ejemplo de abajo se ha probado con el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/^[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}$/
Abrir en el Probador de Regex
EntradaResultado
123e4567-e89b-12d3-a456-426614174000✓ Coincide
550e8400-e29b-41d4-a716-446655440000✓ Coincide
01890a5d-ac96-774b-bcce-b302099a8057✓ Coincide
123e4567e89b12d3a456426614174000✗ No coincide
123e4567-e89b-02d3-a456-426614174000✗ No coincide
zzzzzzzz-e89b-12d3-a456-426614174000✗ No coincide

Cómo funciona el patrón

ParteSignificado
[0-9a-fA-F]{8}Ocho dígitos hexadecimales
[1-8][0-9a-fA-F]{3}El tercer grupo empieza por la versión, de 1 a 8
[89abAB][0-9a-fA-F]{3}El cuarto grupo empieza por la variante de RFC 9562: 8, 9, a o b
[0-9a-fA-F]{12}Doce dígitos hexadecimales al final
-Guiones en las posiciones 8-4-4-4-12

Ejemplos de código

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;

Notas y limitaciones

Para aceptar solo UUID de versión 4 (aleatorios), cambia [1-8] por 4. Genera valores de prueba con el Generador de UUID.

Preguntas frecuentes

¿Cuál es la regex para 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}$/ — coincide con la cadena completa. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, coinciden estos: 123e4567-e89b-12d3-a456-426614174000, 550e8400-e29b-41d4-a716-446655440000, 01890a5d-ac96-774b-bcce-b302099a8057. Los demás no.
¿Cómo pruebo esta regex?
Haz clic en «Abrir en el Probador de Regex»: el patrón, los flags y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.