You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于SSN及9位号码筛选的正则匹配规则技术问询

匹配有效社会安全号码(SSN)的正则表达式方案

我来给你分享一个能精准满足需求的正则表达式,它既能匹配多种格式的合法SSN,又能自动过滤掉那些明显无效的号码。

核心正则表达式

(?<!\d)(?!000|666|9\d{2})(\d{3})(?:[^\d]?)(?!00)(\d{2})(?:[^\d]?)(?!0000)(\d{4})(?!\d)

详细规则拆解

支持匹配的有效SSN格式

  • 带任意非数字分隔符的标准结构SSN,比如:
    • 123-45-6789(连字符分隔)
    • 123.45.6789(点分隔)
    • 123 45 6789(空格分隔)
    • 甚至非标准分隔符如123x45x6789也能匹配
  • 无分隔符的9位连续数字,但要求前后为空白或非数字字符(避免和更长的数字串混淆),比如:
    • 文本中的123456789
    • abc 123456789 def

自动排除的无效SSN类型

  • 以000开头的号码(如000-12-3456)
  • 以666开头的号码(如666-78-9012)
  • 前三位以9开头的号码(如912-34-5678)
  • 中间两位为00的号码(如123-00-4567)
  • 最后四位为0000的号码(如123-45-0000)
  • 全零的无效号码000-00-0000
  • 连续数字的典型无效号123-45-6789

使用注意事项

这个正则用了负向断言来精准排除无效的前缀、中间段和后缀,同时用(?:[^\d]?)来兼容任意单个非数字分隔符(包括无分隔符的情况)。前后的(?<!\d)和(?!\d)则确保SSN不会是更长数字串的一部分,避免误匹配。

如果需要在特定编程语言中使用,可能需要微调转义字符(比如Java中要处理反斜杠转义),但核心逻辑是通用的。

内容的提问来源于stack exchange,提问作者Joe Tramonte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:24:51