如何修改当前匹配3个数字的2个正则表达式,以匹配4位数字末尾的相同3个数字



我有一个正则表达式,我用它来查找数字556和567的任意顺序。现在我正在寻找修改正则表达式,使搜索将匹配相同的3个数字在最后3位数字的4位数字。

第一个匹配任意顺序556的正则表达式:

"b(?=[0-46-9]*5[0-46-9]*5[0-46-9]*b)(?=d{3})d*6d*b"

我希望新的正则表达式匹配下面的([0-9]556,[0-9]565,[0-9]655)。预期结果:

0556
0565
0655
1556
1565
1655 ........

第二个匹配任意顺序567的正则表达式:

"b(?=[0-46-9]*5)(?=[0-57-9]*6)(?=[0-689]*7)d+b"

所需结果:

7756
7765
8567
8576
8657
8675
8756
8765…

可以匹配第一个数字,然后断言长度为3位,直到字符串的末尾。

断言至少一个6,然后在可选的6之间匹配2次5。

使用字符类来限制数字

的可能匹配
^d(?=[56]{3}$)(?=[56]*6)6*56*56*$

Regex演示

简写为^d(?:556|565|655)$

对于第二个模式,您可以使用相同的方法,匹配单个数字,断言5和6,然后匹配7。

^d(?=[567]{3}$)(?=[567]*5)(?=[567]*6)[567]*7[567]*$

Regex演示

简写为^d(?:567|576|657|675|756|765)$

最新更新