NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
GUID Regex Go バリデーター

GUID Regex Go バリデーター

GUID Regex Go バリデーターを使って、一意識別子が正しい構造に従っているかを確認してください。Go Regex テスターで regex をテスト・デバッグしたり、メールURLパスワードなどの関連データを検証して完全なデータ品質ワークフローを実現できます。

GUID Regex Go バリデーター - ドキュメント

GUID Regex とは?

Go(Golang)において、GUID(Globally Unique Identifier、グローバル一意識別子)は UUID(Universally Unique Identifier)とも呼ばれ、分散システム全体でリソースを一意に識別するために使用されます。追跡、バージョン管理、参照において、2つの値が同じにならないことを保証するために不可欠です。

GUID の例:

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

32 個の16進数文字がハイフンで区切られた5つのグループに配置されており、以下のパターンに従います:

8-4-4-4-12

Go で GUID フォーマットを検証する最も信頼性の高い方法は正規表現(regex)の使用です。データの保存や処理前に、regex を使ってこの構造をマッチ・検証できます。

GUID Regex パターン(内訳付き)

GUID を検証するための 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}$

説明:

  • [0-9a-fA-F]{8}:8 桁の16進数(第1グループ)

  • -:ハイフン区切り

  • [0-9a-fA-F]{4}:4 桁の16進数(第2グループ)

  • [1-5][0-9a-fA-F]{3}:バージョン桁(1〜5)+ 3 桁の16進数

  • [89abAB][0-9a-fA-F]{3}:バリアント桁(8、9、a、b で始まる)+ 3 桁の16進数

  • [0-9a-fA-F]{12}:末尾の 12 桁の16進数

GUID に波括弧は使えますか?

標準の GUID フォーマットはハイフンで5つのグループを区切りますが、特に Microsoft や特定の Windows 環境では波括弧で囲まれた GUID も見られます。例えば:

  • 波括弧あり:{3f2504e0-4f89-11d3-9a0c-0305e82c3301}

  • 波括弧なし:3f2504e0-4f89-11d3-9a0c-0305e82c3301

上記の regex パターンは両方のシナリオに対応しています。パターンの先頭と末尾のオプションの {} により、波括弧の有無に関わらず GUID を検証できます。Windows、.NET ベースのフレームワーク、クロスプラットフォームアプリケーションなど、さまざまなシステムからのデータを処理する際に重要な柔軟性です。

補助的な空間計算量

Go で正規表現を使って GUID を検証する処理はメモリ使用量の点で非常に効率的です。補助的な空間計算量は O(1)、つまり文字列がパターンにマッチするかどうかのチェックは、文字列の長さに関わらず一定量の追加メモリしか必要としません。すべての処理はインプレースで行われ、検証中に追加のデータ構造は作成されません。

パフォーマンス:GUID 検証の時間計算量

正規表現で GUID を検証する場合、処理は通常文字列を最初から最後まで一度スキャンしてパターンへの適合を確認します。つまり時間計算量は入力文字列の長さに対して線形、O(N) です。追加メモリはほとんど必要ないため、補助空間は O(1) を維持します。regex ベースの GUID チェックは効率的で、スケールしてもほとんど遅延は感じません。

Go で regex を使って GUID を検証する方法

Go の regexp パッケージを使って GUID を検証できます。完全な Go コードは以下の通りです:

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

}

実際のユースケース

  • データベースの主キー:分散データベースのレコード識別に有用。

  • API リソース識別子:RESTful サービスでは /user/3f2504e0-4f89-11d3-9a0c-0305e82c3301 のようなリソースに GUID を使用。

  • セッショントークン:ウェブアプリは安全なセッションの追跡に UUID をよく使用。

  • デバイスやファイル ID:多くのクラウドストレージサービスがファイルの一意の参照に GUID を使用。

プロのヒント

  • GUID の表示時は小文字または大文字で一貫性を保つようにしてください。

  • Regex はフォーマットのみを検証します。GUID が真に一意であるかどうかは確認できません。

  • 保護されていない URL では機密性の高いリソースに関連する GUID を公開しないでください。

  • 検証には regex を使用し、生成には github.com/google/uuid のようなライブラリを使用してください。

  • 一括テストにはGo Regex テスターを使ってさまざまなフォーマットを素早く試してください。

JavaScript での GUID 検証

JavaScript で GUID フォーマットに準拠した文字列かどうかを確認するには、正規表現によるクイックチェックが使えます。

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

Python での GUID 検証

Python の re モジュールを使って regex 検証をシンプルかつ確実に行えます。

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

Java での GUID 検証

Java の PatternMatcher クラスを使って GUID 検証ユーティリティを作成できます。

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

}

組み合わせをお勧めするツール

Frequently Asked Questions

GUID と UUID の違いは何ですか?

GUID と UUID は機能的に同じです。GUID は Microsoft のエコシステムで使用され、UUID は正式な RFC の用語です。

この regex は偽のまたは重複した GUID を検出できますか?

いいえ、フォーマットのみをチェックします。真に一意な値を作成するには UUID 生成ライブラリを使用してください。

この regex はすべてのバージョンの UUID を検証しますか?

はい、[1-5] バージョンセグメントを通じて UUID バージョン1から5をサポートしています。

GUID の大文字は有効ですか?

はい、regex は大文字小文字を区別せず、16進数の大文字・小文字両方にマッチします。

regex からハイフンを削除できますか?

コンパクトな UUID を扱う場合はハイフンを除外するようパターンを変更できますが、標準のフォーマットから外れます。

APIを今すぐテストしましょう!

平易な言葉で記述するだけで、Qodex が安全ですぐに実行できるテストに変換します。