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

如何用Regex捕获9位特殊手机号中的两组重复4次匹配组?

解决方案:匹配5XXXXYYYY格式的特殊手机号并捕获两组重复数字

直接用这个正则就能满足需求:

^5(\d)\1{3}(\d)\2{3}$

正则说明:

  • ^ 和 $ 锚定整个字符串,确保匹配的是完整的9位号码,避免出现部分匹配的情况
  • 5 匹配号码开头固定的第一位数字
  • (\d)\1{3}:捕获第一个重复4次的数字组,(\d)捕获单个数字,\1{3}表示这个数字再重复3次,凑成4个相同数字(对应XXXX)
  • (\d)\2{3}:同理,捕获第二个重复4次的数字组(对应YYYY)

用511112222测试时,会得到两个捕获组:

  • 分组1:1(对应完整的1111)
  • 分组2:2(对应完整的2222)

如果想直接捕获完整的4位重复串(比如直接拿到1111和2222),可以调整正则为:

^5((\d)\2{3})((\d)\4{3})$

这时分组1是1111,分组3是2222。

你之前的正则问题在于:没有限定整个号码的结构,而且只写了单个重复组的匹配规则,所以只会找到第一个符合的1111就停止了。加上锚点和明确的两组重复结构,就能同时捕获两组目标内容了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:15:43