NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validador Regex de GUID em Go

Validador Regex de GUID em Go

Use o Validador Regex de GUID em Go para garantir que seus identificadores únicos sigam a estrutura correta. Teste e depure seu regex no Go Regex Tester ou valide dados associados como emails, URLs e senhas para um fluxo completo de qualidade de dados.

Validador Regex de GUID em Go - Documentação

Introdução: O que é GUID Regex?

Em Go (Golang), um GUID (Globally Unique Identifier), também conhecido como UUID (Universally Unique Identifier), é usado para identificar recursos de forma única em sistemas distribuídos. Ele garante que dois valores nunca sejam iguais, sendo vital para rastreamento, versionamento e referências.

Um GUID tem este formato:

3f2504e0-4f89-11d3-9a0c-0305e82c3301

Contém 32 caracteres hexadecimais organizados em 5 grupos separados por hífens, seguindo o padrão:

8-4-4-4-12

A forma mais confiável de validar formatos GUID em Go é usando expressões regulares (regex). O regex permite corresponder e verificar essa estrutura antes de armazenar ou processar os dados.

Padrão Regex de GUID (com Explicação)

Aqui está o padrão regex que usamos para validar um GUID:

^[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}$

Explicação:

  • [0-9a-fA-F]{8} - Primeiro grupo de 8 dígitos hexadecimais

  • - - Separador hífen

  • [0-9a-fA-F]{4} - Segundo grupo de 4 dígitos

  • [1-5][0-9a-fA-F]{3} - Dígito de versão (1 a 5) + 3 dígitos hex adicionais

  • [89abAB][0-9a-fA-F]{3} - Dígito de variante (começando com 8, 9, a ou b) + 3 dígitos hex

  • [0-9a-fA-F]{12} - 12 dígitos hex finais

Chaves São Permitidas em GUIDs?

Embora o formato padrão de GUID use hífens para separar seus cinco grupos, você também pode encontrar GUIDs entre chaves, especialmente em ambientes Microsoft e Windows. Por exemplo:

  • Com chaves: {3f2504e0-4f89-11d3-9a0c-0305e82c3301}

  • Sem chaves: 3f2504e0-4f89-11d3-9a0c-0305e82c3301

O padrão regex fornecido acima é robusto o suficiente para lidar com ambos os cenários, graças ao { e } opcionais no início e no fim do padrão.

Complexidade de Espaço Auxiliar

Validar um GUID com uma expressão regular em Go é altamente eficiente em termos de uso de memória. A complexidade de espaço auxiliar é O(1), ou seja, verificar se uma string corresponde ao padrão GUID requer apenas uma quantidade fixa e constante de memória extra, independente do tamanho da string.

Desempenho: Complexidade de Tempo da Validação de GUID

A validação de GUID usando regex geralmente percorre a string uma vez do início ao fim para verificar a conformidade com o padrão. A complexidade de tempo é linear em relação ao comprimento da string de entrada, O(N), onde N é o número de caracteres no GUID candidato.

Como Validar GUIDs em Go Usando Regex

Você pode validar GUIDs usando o pacote regexp em Go. Aqui está o código Go completo:

package main

import ( "fmt" "regexp" )

func isValidGUID(guid string) bool { pattern := ^[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}$ regex := regexp.MustCompile(pattern) return regex.MatchString(guid) }

func main() { samples := []string{ "3f2504e0-4f89-11d3-9a0c-0305e82c3301", // valid "3F2504E0-4F89-11D3-9A0C-0305E82C3301", // valid uppercase "123e4567e89b12d3a456426614174000", // invalid (no hyphens) "3f25-04e0-4f89-11d3-9a0c-0305e82c3301", // invalid (group mismatch) }

for _, guid := range samples {
    fmt.Printf("GUID: %s | Valid: %t\n", guid, isValidGUID(guid))
}

}

Casos de Uso no Mundo Real

  • Chaves Primárias de Banco de Dados: Úteis para identificar registros em bancos de dados distribuídos.

  • Identificadores de Recursos de API: Serviços RESTful usam GUIDs para recursos como /user/3f2504e0-4f89-11d3-9a0c-0305e82c3301.

  • Tokens de Sessão: Aplicações web frequentemente usam UUIDs para rastrear sessões seguras.

  • IDs de Dispositivos ou Arquivos: Muitos serviços de armazenamento em nuvem usam GUIDs para referenciar arquivos de forma única.

Dicas Profissionais

  • Use sempre letras minúsculas ou maiúsculas de forma consistente ao exibir GUIDs.

  • O regex valida apenas o formato, não se o GUID é verdadeiramente único.

  • Nunca exponha GUIDs relacionados a recursos sensíveis em URLs não seguras.

  • Use regex para validação, mas bibliotecas como github.com/google/uuid para geração.

  • Para testes em lote, use o Go Regex Tester para experimentar diferentes formatos rapidamente.

Como Validar GUIDs em JavaScript

Para garantir que suas strings estejam no formato padrão GUID em JavaScript, você pode usar uma expressão regular para uma verificação rápida. Aqui está uma função direta:

function isValidGUID(input) {
const guidPattern = /^[{]?[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}[}]?$/;
return guidPattern.test(input);
}

Validando GUIDs em Python

O módulo re do Python torna a validação regex simples e confiável:

import re

def is_valid_guid(guid): pattern = r'^[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$' return bool(re.match(pattern, guid))

Implementando Validação de GUID em Java

As classes Pattern e Matcher do Java tornam a validação direta:

import java.util.regex.Pattern;

public class GuidValidator { private static final Pattern GUID_PATTERN = Pattern.compile( "^[{]?[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}[}]?$" );

public static boolean isValidGuid(String guid) {
    return guid != null && GUID_PATTERN.matcher(guid).matches();
}

}

Combine com Estas Ferramentas

Frequently Asked Questions

Qual é a diferença entre GUID e UUID?

GUID e UUID são funcionalmente iguais. GUID é usado em ecossistemas Microsoft, enquanto UUID é o termo formal do RFC.

Este regex detecta GUIDs falsos ou duplicados?

Não, ele verifica apenas o formato. Use uma biblioteca de geração de UUID para criar valores verdadeiramente únicos.

Este regex valida todas as versões de UUIDs?

Sim, ele suporta versões de UUID de 1 a 5 via segmento de versão [1-5].

Letras maiúsculas em GUIDs são válidas?

Sim, o regex é insensível a maiúsculas e corresponde a caracteres hexadecimais tanto em maiúsculas quanto em minúsculas.

Posso remover os hífens do regex?

Você pode modificar o padrão para excluir hífens se estiver trabalhando com UUIDs compactos, mas isso desvia da formatação padrão.

Teste suas APIs hoje!

Escreva em português simples, o Qodex transforma em testes seguros e prontos para execução.