
UUID Regex Pythonバリデーター
セキュアなAPI、データベース、分散システムを開発するPython開発者向けに構築されたUUID Regex Pythonバリデーターで、UUID文字列を検証できます。このツールはPython regexを使用して、識別子が標準UUID形式に準拠しているかどうかを確認します。バックエンドの入力チェックを強化するために、Email Regex PythonバリデーターやIP Address Regex Pythonバリデーターと組み合わせてご利用ください。
UUID Regex Pythonバリデーター - ドキュメント
UUID Regexとは何ですか?
UUID(Universally Unique Identifier)は、システム間でデータを一意にラベル付けするために使用される128ビットの識別子です。通常、ハイフンで5つのグループに分けられた32の16進数文字として表されます。例:
123e4567-e89b-12d3-a456-426614174000UUIDはデータベース、API、マイクロサービス、IoT、およびグローバルな一意性が必要なあらゆるコンテキストで使用されます。
PythonにおけるUUID Regexパターン
標準UUID形式(v1からv5)に一致させるには、以下の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}$このパターンは以下を確認します:
8文字の16進数
バージョングループ(1から5で始まる)の4桁
バリアントグループ(8からbで始まる)の4桁
最後の12桁の16進数
PythonでRegexを使用してUUIDを検証する方法
Pythonのreモジュールを使用して有効なUUIDを照合する方法は次のとおりです:
import redef 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)}")
この関数は、文字列が標準UUID regexパターンに一致するかどうかを確認する直接的な方法を提供します。入力が期待されるUUID形式に一致する場合はTrueを、そうでない場合はFalseを返します。
より堅牢な検証のために、特に文字列がPythonで実際に有効なUUIDオブジェクトとして構築可能かどうかを確認したい場合は、組み込みのuuidモジュールを使用することもできます。このアプローチは入力からuuid.UUIDオブジェクトを作成しようとし、成功すれば有効なUUID、失敗してValueErrorが発生すれば無効なUUIDとして扱います:
簡単な形式チェックには、regexベースの
is_valid_uuidを使用してください。実際のUUID値のより深い検証にはuuidモジュールを使用してください。
クイックフォーマットチェックが必要か、パターン自体の外にある微妙な問題も検出する完全な検証が必要かによって、どちらの方法も役立ちます。
検証前に入力を文字列に変換する理由
UUIDをバリデーターに通す前に、入力を文字列に変換することをお勧めします。これにより、整数、UUIDオブジェクト、または予期しない値が渡された場合のエラーを避けることができます。
チェック前に入力をstr(value)でラップすることで、バリデーターが常に文字列を受け取ることを確実にします。この習慣は、特にJSON、ユーザー入力、または外部APIからのデータを処理する際に、さまざまなデータ型に遭遇する可能性があるコードでの混乱するバグを防ぐことができます。
UUID検証における混合入力型の処理
検証したい値が文字列でない場合、整数、オブジェクト、またはその他の予期しないものである場合があります。これに対処するために、UUID regex検証を実行する前に、受け取ったものを最初に文字列に変換することをお勧めします。これにより、整数や他の型を見た場合でも関数がエラーを起こしません。
この変更により、整数、文字列、または他の型を渡すことができ、それらの文字列表現がUUID形式に一致する限り問題ありません。このアプローチにより、検証はあらゆる種類の入力に対して堅牢で使いやすくなります。
ハイフンなしのUUIDのマッチング
コンパクトなデータベースキーやレガシーシステムで見られるような、ハイフンが削除されたUUIDをマッチングする必要がある場合は、regexパターンを調整するだけです。ハイフンをセパレーターとして含める代わりに、32文字の16進数の連続した文字列を探します。
パターンを変更する方法は次のとおりです:
^[0-9a-fA-F]{32}$このパターンは、単一の途切れない32文字の16進数文字列として書かれたUUID(例:123e4567e89b12d3a456426614174000)と一致します。非標準フォーマットの処理や検証前のユーザー入力のクリーンアップに役立ちます。
非文字列UUID入力の処理
Pythonのuuid.UUIDコンストラクターは非常に柔軟で、文字列入力だけでなく、整数などのデータ型も受け付けることができます。検証をスムーズに行うために、入力をuuid.UUIDに渡す前に明示的に文字列に変換することをお勧めします。例えば:
入力を最初に文字列に変換することで、UUID検証はより堅牢になります。特にデータの出所や型が異なる可能性がある場合に役立ちます。
ユースケース
APIリソースの識別:REST endpointやJSONペイロードでUUIDを使用して、レコードを一意に参照します。
データベースインデックス:分散テーブル間でのコリジョンを防ぐために、UUIDを主キーとして使用します。
セッション管理:セキュアなアプリケーションでのユーザーセッション用のUUIDベースのtokenを検証します。
フォーム送信:フォームの隠しフィールドが有効なUUIDを渡しているかどうかを確認します。
Password Regex Pythonバリデーターと組み合わせて、ユーザーログインデータを保護します。
プロのヒント
UUIDは小文字または大文字が使用可能で、このパターンは両方に一致します。
PythonのuuidモジュールをUUIDの生成と比較に使用し、このregexで形式を検証します。
文字列が有効なUUIDかどうかをtry/exceptブロックでuuid.UUIDインスタンスの作成を試みることで検証できます。regex形式のマッチングを超えた追加の保証レイヤーを追加できます。
このregexは形式のみを確認し、UUIDのランダム性やバージョンロジックは確認しません。
一貫性のために、保存前に.lower()を使用してUUIDを小文字に正規化します。
Pythonアプリでの完全なフォーム検証のために、Email Regex PythonバリデーターやPhone Number Regex Pythonバリデーターと組み合わせます。
Frequently Asked Questions
このregexはどのUUIDバージョンをサポートしていますか?
大文字のUUIDを検証するためにこのregexを使用できますか?
この形式はデータベースキーに適していますか?
UUIDにハイフンがない場合はどうなりますか?
このregexは無効なUUIDバージョン番号を検出できますか?
Related Articles






