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

如何修改正则表达式匹配5ABCDEXXX格式的9位手机号码?

解决方案

原正则的问题

  1. 未使用^和$锚点,会匹配字符串中的片段而非完整9位号码
  2. 匹配逻辑混乱:.{5}会匹配任意5个字符,无法精准限制开头为5、中间4位不重复的规则,也没定位结尾的3位相同数字

正确的正则表达式

^5(?!(\d).{0,2}\1)\d{4}\d(\d)\1{2}$

规则拆解

  • ^:锁定字符串开头,确保从第1位开始匹配
  • 5:强制第1位为数字5
  • (?!(\d).{0,2}\1):负前瞻断言,检查接下来的4位数字中无重复(.{0,2}覆盖4位内相同数字的所有间隔场景)
  • \d{4}:匹配第2-5位的4个不同数字
  • \d:匹配第6位的任意数字(无重复限制)
  • (\d)\1{2}:匹配结尾连续3个相同数字——(\d)捕获一个数字,\1{2}重复该数字2次,凑成3位相同
  • $:锁定字符串结尾,确保是完整的9位号码

测试验证

  • 匹配合法号码:582694666 → 符合所有规则,成功匹配
  • 拒绝误匹配号码:552728495 → 结尾不是3位相同数字,且第2位与开头5重复,触发负前瞻断言失败,不会被匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:15:33