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

SSN Regex Python バリデーター

SSN Regex Python バリデーターを使って、米国の社会保障番号(SSN)を簡単に検証できます。このツールは Python の re モジュールを使い、正しい「AAA-GG-SSSS」形式を確認します。より広範な入力検証には、Email Regex Python バリデーター電話番号 Regex Python バリデーターPython Regex テスターもあわせてご利用ください。

SSN Regex Python バリデーター - ドキュメント

SSN Regex とは何ですか?

米国の社会保障番号(SSN)は次の標準フォーマットに従います。

XXX-XX-XXXX

各パートの意味:

  • XXX:エリア番号(3桁)

  • XX:グループ番号(2桁)

  • XXXX:シリアル番号(4桁)

このフォーマットは税務・法的目的の構造化された識別を保証します。regex を使うことで、入力文字列がこの形式に厳密に従っているかどうかを検証できます。

有効な SSN と見なされるには、文字列が次の基準をすべて満たす必要があります。

  • 合計9桁、ハイフンで3つのパートに区切られます。

  • エリア番号(最初の3桁):000、666、または 900〜999 の値は使用できません。

  • グループ番号(中間の2桁):01〜99 の範囲で、00 は無効です。

  • シリアル番号(最後の4桁):0001〜9999 の範囲で、0000 は無効です。

これらのルールにより、適切に構造化され有効な可能性のある SSN のみが検証を通過し、エラーを減らしてデータの整合性を高めます。

SSN Regex パターン

適切にフォーマットされた SSN を検証するための典型的な regex パターンは次のとおりです。

^\d{3}-\d{2}-\d{4}$

内訳:

  • ^\d{3} : 先頭の3桁

  • - : 1つ目のハイフン

  • \d{2} : 2桁

  • - : 2つ目のハイフン

  • \d{4}$ : 末尾の4桁

これにより、123-45-6789 のような厳密なフォーマットマッチングが保証されます。

Python コード例

import re

def is_valid_ssn(ssn): pattern = re.compile(r'^\d{3}-\d{2}-\d{4}$') return bool(pattern.fullmatch(ssn))

テストケース

print(is_valid_ssn("123-45-6789")) # True print(is_valid_ssn("123456789")) # False print(is_valid_ssn("12-345-6789")) # False

regex のバリエーションは Python Regex テスターでテストできます。

時間・空間計算量

  • 時間計算量: SSN 文字列の長さを N とすると O(N) です。regex エンジンが各文字を一度スキャンして形式を確認するためです。

  • 空間計算量: 入力サイズに比例した追加データを保持する必要がないため O(1) です。

ユースケース

  • ユーザー本人確認:登録やオンボーディング時の正確な SSN 入力を保証します。

  • データクレンジング:データベース内の不正にフォーマットされた SSN を検出・修正します。

  • セキュリティとコンプライアンス:機密データ送信前に SSN フォーマットを検証します。

以下のツールと組み合わせることもできます。

使用する Regex メタ文字

  • ^ : 文字列の先頭にアンカーします。

  • \d : 任意の数字(0〜9)にマッチします。

  • {n} : ちょうど n 桁にマッチします。

  • - : SSN 内のリテラルハイフンにマッチします。

  • $ : 文字列の末尾にアンカーします。

プロのヒント

  • 部分一致を避けるため、常に ^ と $ でパターンをアンカーしてください。

  • 検証前にユーザー入力の空白をトリムするよう前処理してください。

  • 無効な組み合わせ(000 や 666 など)を除外するために高度な regex や追加ロジックを使用できます。

  • プレーンな SSN は保存しないでください。検証後に暗号化してください。

  • デプロイ前に Python Regex テスターで試してみてください。

Frequently Asked Questions

この regex はハイフンあり・なし両方の SSN を検証できますか?

現在のパターン(^\d{3}-\d{2}-\d{4}$)はハイフンありの形式のみを厳密にマッチします。両方の形式を許可するには、パターンを ^\d{3}-?\d{2}-?\d{4}$ に変更する必要があります。

この regex は 000 や 666 のような無効・禁止された SSN の組み合わせを検出しますか?

いいえ。基本的な regex はフォーマットのみをチェックします。予約済みや禁止された範囲(例:000-xx-xxxx)をブロックするには、追加ロジックや否定先読みを使った高度なパターンが必要です。

政府や金融システムでの使用に十分なパターンですか?

フォーマット確認には適していますが、本番システムでは regex とバックエンド検証、セキュアな取り扱い方法を組み合わせる必要があります。

ユーザーが SSN の前後に空白を入力した場合はどうなりますか?

余分な空白を含む文字列には regex がマッチしません。regex を適用する前に空白をトリムすることをお勧めします。

このパターンをより大きなデータ検証パイプラインで使用できますか?

もちろんです。この regex は他のもの(例:Email Regex Python バリデーター、電話番号バリデーター)と組み合わせて、フォーム全体またはバッチデータの検証に使用できます。

APIをテストしてみましょう!

平易な日本語で記述するだけで、Qodex がセキュアですぐに実行できるテストに変換します。