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

如何编写正则表达式匹配后三位比前三位大1的6位数字?

6位数字特殊模式匹配方案

已实现的匹配类型

  • 四位重复数字:1111、2222……
  • 连续递增数字:123456、234567……
  • 回文数字:123321、234432……

目标模式匹配:前三位xyz,后三位xyz+1的6位数字

需要匹配形如100101(100+1=101)、101102、199200这类6位数字,核心规则是前三位数值加1等于后三位数值(含进位场景,如999+1=1000时,后三位取000)。

正则表达式实现

^(?:(?:[0-8]\d{2}|9[0-8]\d|99[0-8])(?=(?:(\d)(\d)([0-8])(?=\1\2(?:\3+1))|(\d)([0-8])9(?=\1(?:\2+1)0)|([0-8])99(?=(?:\1+1)00)))|999000)$

正则逻辑说明

这个正则通过分场景覆盖所有符合规则的情况:

  1. 普通非全9前三位:
    • 个位0-8(无进位):匹配前三位如123,正向预查后三位为124(前两位不变,个位+1)
    • 个位为9、十位0-8(单进位):匹配前三位如129,正向预查后三位为130(个位变0,十位+1)
    • 个位和十位为9、百位0-8(双进位):匹配前三位如199,正向预查后三位为200(个位、十位变0,百位+1)
  2. 特殊全9前三位:单独匹配999000,对应999+1=1000,取后三位000的场景

参考正则技巧整理

针对数值递增类的正则匹配,核心技巧是拆分数字位,分场景处理进位逻辑:

  • 把多位数拆分为单个数字位,针对无进位、单一位进位、多位进位的不同情况分别编写匹配规则
  • 利用反向引用复用前序捕获的数字位,结合固定数字匹配进位后的结果
  • 对全9这类边界场景单独处理,避免遗漏匹配

内容的提问来源于stack exchange,提问作者Trí Nhân Trần

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 22:45:53