NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
UUID Regex Python Validator

UUID Regex Python Validator

Valide cadenas UUID con el UUID Regex Python Validator, creado para desarrolladores Python que trabajan con APIs seguras, bases de datos y sistemas distribuidos. Esta herramienta verifica si sus identificadores cumplen el formato UUID estándar usando regex de Python. Para suites de validación completas, combínela con el Email Regex Python Validator o el IP Address Regex Python Validator para reforzar las verificaciones de entrada en su backend.

UUID Regex Python Validator - Documentación

¿Qué es un UUID Regex?

Un UUID (Identificador Universalmente Único) es un identificador de 128 bits que se utiliza para etiquetar datos de forma única en distintos sistemas. Generalmente se representa como 32 caracteres hexadecimales divididos en 5 grupos por guiones, por ejemplo:

123e4567-e89b-12d3-a456-426614174000

Los UUIDs se usan en bases de datos, APIs, microservicios, IoT y cualquier contexto que requiera unicidad global.

Patrón UUID Regex en Python

Para coincidir con un formato UUID estándar (v1-v5), use este patrón regex:

^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$

Este patrón verifica:

  • 8 caracteres hexadecimales

  • Grupo de versión de 4 dígitos (comenzando con 1-5)

  • Grupo de variante de 4 dígitos (comenzando con 8-b)

  • 12 dígitos hexadecimales finales

Cómo Validar UUIDs con Regex en Python

Así se utiliza el módulo re en Python para validar UUIDs:

import re

def is_valid_uuid(uuid_str): pattern = re.compile(r'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$') return bool(pattern.match(uuid_str))

Example test

uuids = [ "123e4567-e89b-12d3-a456-426614174000", # Valid "123e4567e89b12d3a456426614174000", # Invalid (no hyphens) "ZZZe4567-e89b-12d3-a456-426614174000" # Invalid (non-hex) ]

for u in uuids: print(f"{u} -> {is_valid_uuid(u)}")

La función anterior proporciona una forma sencilla de verificar si una cadena coincide con el patrón regex UUID estándar. Devuelve True si la entrada coincide con el formato esperado; de lo contrario, devuelve False.

Para una validación más robusta, especialmente cuando se desea garantizar que la cadena represente realmente un objeto UUID válido en Python (no solo el patrón correcto), también se puede usar el módulo integrado uuid. Este enfoque intenta crear un objeto UUID a partir de la entrada. Si tiene éxito, la entrada es un UUID válido; si no, se genera y captura una excepción:

  • Use la función is_valid_uuid basada en regex para verificaciones simples de formato.

  • Use el módulo uuid para una validación más profunda de valores UUID reales.

Ambos métodos son útiles según si necesita una verificación rápida de formato o una validación completa que detecte problemas sutiles fuera del patrón.

¿Por Qué Convertir las Entradas a String Antes de Validar?

Antes de pasar el UUID al validador, es buena práctica convertir la entrada a string. Esto evita errores cuando alguien pasa un valor que no es ya una cadena, como un entero, un objeto UUID, o algo inesperado.

Al envolver la entrada en str(value) antes de la verificación, se garantiza que el validador siempre reciba una cadena. Este hábito sencillo puede evitar bugs confusos, especialmente cuando el código puede encontrar distintos tipos de datos (por ejemplo, al manejar JSON, entrada de usuario o datos de APIs externas).

Manejo de Tipos de Entrada Mixtos para Validación UUID

A veces el valor a verificar no es una cadena: puede ser un entero, un objeto, o algo inesperado. Para esto, conviene convertir primero lo recibido a string antes de ejecutar la validación regex UUID. Así la función no fallará si recibe un entero u otro tipo.

Con esta modificación, se pueden pasar enteros, cadenas u otros tipos, y mientras su representación en string coincida con el formato UUID, todo funcionará. Este enfoque mantiene la validación robusta y compatible con todo tipo de entradas.

Coincidencia con UUIDs Sin Guiones

Si necesita coincidir con UUIDs donde se han eliminado los guiones, algo que a veces se encuentra en claves de bases de datos compactas o sistemas heredados, simplemente ajuste el patrón regex. En lugar de incluir guiones como separadores, busque una cadena continua de 32 caracteres hexadecimales.

El patrón modificado:

^[0-9a-fA-F]{32}$

Este patrón coincide con UUIDs escritos como una cadena hexadecimal continua de 32 caracteres (por ejemplo, 123e4567e89b12d3a456426614174000). Es útil para manejar formatos no estándar o limpiar entradas de usuario antes de validar.

Manejo de Entradas UUID No String

El constructor uuid.UUID en Python es flexible y puede aceptar más que simples entradas de cadena. Para garantizar una validación fluida, convierta explícitamente la entrada a string antes de pasarla a uuid.UUID. Esto previene errores inesperados al manejar números o tipos mixtos.

Al convertir primero las entradas a string, la validación UUID es más robusta, especialmente cuando el origen o tipo de los datos puede variar al interactuar con sistemas externos o usuarios.

Casos de Uso

  • Identificación de Recursos API: Use UUIDs en endpoints REST o payloads JSON para referenciar registros de forma única.

  • Indexación en Bases de Datos: Use UUIDs como claves primarias para evitar colisiones en tablas distribuidas.

  • Gestión de Sesiones: Valide tokens basados en UUID para sesiones de usuario en aplicaciones seguras.

  • Envíos de Formularios: Verifique si los campos ocultos de los formularios pasan UUIDs válidos.

  • Combínelo con el Password Regex Python Validator para proteger los datos de inicio de sesión de usuarios.

Consejos Profesionales

  • Los UUIDs pueden estar en minúsculas o mayúsculas, y este patrón coincide con ambas.

  • Use el módulo uuid de Python para generar y comparar UUIDs, y valide el formato con este regex.

  • Para mayor seguridad, intente construir un objeto UUID en un bloque try/except. Si la cadena es un UUID válido, el objeto se crea exitosamente; si no, se genera una excepción. Esto añade una capa extra de garantía más allá de la simple coincidencia de formato.

  • Este regex solo verifica el formato, no la aleatoriedad ni la lógica de versión del UUID.

  • Normalice los UUIDs a minúsculas usando .lower() antes de almacenarlos para mayor consistencia.

  • Combínelo con el Email Regex Python Validator o el Phone Number Regex Python Validator para validación completa de formularios en apps Python.

Frequently Asked Questions

¿Qué versiones de UUID admite este regex?

Este patrón admite las versiones UUID del 1 al 5 verificando el dígito de versión.

¿Puedo usar este regex para validar UUIDs en mayúsculas?

Sí, coincide con dígitos hexadecimales tanto en minúsculas como en mayúsculas.

¿Este formato es adecuado para claves de bases de datos?

Sí, los UUIDs se usan comúnmente como claves primarias en sistemas SQL y NoSQL.

¿Qué sucede si un UUID no tiene guiones?

El regex lo rechazará. Este validador espera el formato estándar con guiones.

¿Puede este regex detectar números de versión UUID inválidos?

Sí, asegura que el dígito de versión sea del 1 al 5, lo que ayuda a detectar algunas entradas inválidas.

¡Pruebe sus APIs hoy!

Escriba en español simple y Qodex lo convierte en pruebas seguras y listas para ejecutar.