NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validateur regex Go de GUID

Validateur regex Go de GUID

Utilisez le Validateur regex Go de GUID pour vous assurer que vos identifiants uniques respectent la structure correcte. Testez et déboguez votre regex dans le Testeur de regex Go ou validez des données associées comme les e-mails, les URL et les mots de passe pour un workflow de qualité des données complet.

Validateur regex Go de GUID - Documentation

Introduction : qu'est-ce que le regex GUID ?

En Go (Golang), un GUID (Globally Unique Identifier), également appelé UUID (Universally Unique Identifier), est utilisé pour identifier des ressources de manière unique dans les systèmes distribués. Il garantit qu'aucune valeur ne sera jamais identique, ce qui le rend indispensable pour le suivi, la gestion de versions et les références.

Un GUID ressemble à ceci :

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

Il contient 32 caractères hexadécimaux organisés en 5 groupes séparés par des tirets, suivant le pattern :

8-4-4-4-12

La manière la plus fiable de valider les formats GUID en Go est d'utiliser des expressions régulières (regex). Regex vous permet de faire correspondre et de vérifier cette structure avant de stocker ou traiter les données.

Pattern regex GUID (avec décomposition)

Voici le pattern regex que nous utilisons pour valider un 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}$

Explication :

  • [0-9a-fA-F]{8} : Premier groupe de 8 chiffres hexadécimaux

  • - : Séparateur tiret

  • [0-9a-fA-F]{4} : Deuxième groupe de 4 chiffres

  • [1-5][0-9a-fA-F]{3} : Chiffre de version (1-5) + 3 chiffres hexadécimaux supplémentaires

  • [89abAB][0-9a-fA-F]{3} : Chiffre de variante (commençant par 8, 9, a ou b) + 3 chiffres hex

  • [0-9a-fA-F]{12} : 12 derniers chiffres hexadécimaux

Les accolades sont-elles autorisées dans les GUID ?

Bien que le format GUID standard utilise des tirets pour séparer ses cinq groupes, vous pouvez aussi rencontrer des GUID entourés d'accolades, notamment dans les environnements Microsoft et certains environnements Windows. Par exemple :

  • Avec accolades : {3f2504e0-4f89-11d3-9a0c-0305e82c3301}

  • Sans accolades : 3f2504e0-4f89-11d3-9a0c-0305e82c3301

Le pattern regex fourni ci-dessus gère les deux scénarios grâce aux { et } optionnels en début et fin de pattern. Votre GUID peut ainsi être validé qu'il soit entouré d'accolades ou non, assurant la compatibilité avec les outils, API et bibliothèques qui peuvent attendre l'un ou l'autre style.

Complexité spatiale auxiliaire

La validation d'un GUID avec une expression régulière en Go est très efficace en termes d'utilisation de la mémoire. La complexité spatiale auxiliaire est O(1) : vérifier si une chaîne correspond au pattern GUID ne nécessite qu'une quantité fixe et constante de mémoire supplémentaire, quelle que soit la longueur de la chaîne. Toutes les opérations se déroulent en place, sans création de structures de données supplémentaires. Cela fait de la validation GUID par regex un choix léger et performant dans vos applications.

Performance : complexité temporelle de la validation GUID

Lorsque vous validez un GUID avec une expression régulière, le processus parcourt généralement la chaîne une fois du début à la fin pour vérifier la conformité au pattern. La complexité temporelle est donc linéaire par rapport à la longueur de la chaîne d'entrée, soit O(N), où N est le nombre de caractères du GUID candidat.

Comment valider des GUID en Go avec regex

Vous pouvez valider des GUID avec le package regexp en Go. Voici le code Go complet :

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))
}

}

Cas d'utilisation réels

  • Clés primaires de base de données : Identification des enregistrements dans les bases de données distribuées.

  • Identifiants de ressources API : Les services REST utilisent des GUID pour les ressources comme /user/3f2504e0-4f89-11d3-9a0c-0305e82c3301.

  • Tokens de session : Les applications web utilisent souvent des UUID pour suivre les sessions sécurisées.

  • Identifiants d'appareils ou de fichiers : De nombreux services de stockage cloud utilisent des GUID pour référencer les fichiers de manière unique.

Conseils avancés

  • Utilisez toujours des minuscules ou des majuscules de manière cohérente lors de l'affichage des GUID.

  • Regex valide le format uniquement, pas si le GUID est réellement unique.

  • N'exposez jamais de GUID liés à des ressources sensibles dans des URL non sécurisées.

  • Utilisez regex pour la validation mais des bibliothèques comme github.com/google/uuid pour la génération.

  • Pour les tests en lot, utilisez le Testeur de regex Go pour essayer rapidement différents formats.

Validation de GUID en JavaScript

Pour valider des GUID en JavaScript, vous pouvez utiliser une expression régulière pour une vérification rapide. Les GUID sont des valeurs 128 bits représentées sous forme de 32 chiffres hexadécimaux, affichés en cinq groupes séparés par des tirets, par exemple : 3f2504e0-4f89-11d3-9a0c-0305e82c3301.

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);
}

Validation de GUID en Python

Voici une approche simple pour la validation de GUID en Python :

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))

Validation de GUID en Java

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();
}

}

Exemple C# : validation de GUID avec regex

using System.Text.RegularExpressions;

public static bool IsValidGuid(string input) { var pattern = @"^[{]?[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}[}]?$"; return Regex.IsMatch(input, pattern); }

Outils à associer

Frequently Asked Questions

Quelle est la différence entre GUID et UUID ?

GUID et UUID sont fonctionnellement identiques. GUID est utilisé dans les écosystèmes Microsoft, tandis qu'UUID est le terme formel selon la RFC.

Ce regex peut-il détecter des GUID faux ou en double ?

Non, il vérifie uniquement le format. Utilisez une bibliothèque de génération d'UUID pour créer des valeurs réellement uniques.

Ce regex valide-t-il toutes les versions d'UUID ?

Oui, il prend en charge les versions UUID 1 à 5 via le segment de version [1-5].

Les lettres majuscules dans les GUID sont-elles valides ?

Oui, le regex est insensible à la casse et correspond aux caractères hexadécimaux en majuscules et en minuscules.

Puis-je supprimer les tirets du regex ?

Vous pouvez modifier le pattern pour exclure les tirets si vous travaillez avec des UUID compacts, mais cela dévie du formatage standard.

Testez vos API dès aujourd'hui !

Rédigez en langage naturel, Qodex génère des tests sécurisés et prêts à l'emploi.