
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-0305e82c330132 個の16進数文字がハイフンで区切られた5つのグループに配置されており、以下のパターンに従います:
8-4-4-4-12Go で 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 mainimport ( "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 の Pattern と Matcher クラスを使って 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(); }
}
組み合わせをお勧めするツール
パスワード Regex Go バリデーター:安全なパスワードチェック
UUID Regex Go バリデーター:バージョンベースの UUID チェック
電話番号 Regex Go バリデーター:ユーザープロファイルに有用
メール Regex Go バリデーター:有効なメールフォーマットの確認
URL Regex Go バリデーター:GUID に紐付くリンクの検証
Go Regex テスター:カスタム regex フォーマットの実験
Frequently Asked Questions
GUID と UUID の違いは何ですか?
この regex は偽のまたは重複した GUID を検出できますか?
この regex はすべてのバージョンの UUID を検証しますか?
GUID の大文字は有効ですか?
regex からハイフンを削除できますか?
Related Articles






