正则表达式重复数字和序列

时间:2015-07-01 12:08:19

标签: php regex

另一个正则表达式问题。花了很多年的时间在StackOverflow上拖钓,没有任何乐趣。

我需要正则表达式(regexai?)以下内容:

  • 连续不能超过4个双号。例如22334455失败,
  • 不能有一个长度大于或等于5位的数字序列。例如 12345或56789都失败了,
  • 必须有4个或更多不同的数字。例如
  • :77788778877失败

我不希望一个表达式适合所有人,猜测它可能需要2/3。

干杯

1 个答案:

答案 0 :(得分:2)

在我看来,唯一可以用正则表达式解决的要求是第一个,表达式如下:((\d)\2){4}。这将尝试匹配一个数字和相同的数字4次(它将寻找4对)。

其他要求,例如检查一个数字是否比跟随它的数字少一个,而最后一个数字不能,据我所知,用正则表达式来解决。

我的建议是使用一种方法来检查每个需求并产生一个表示失败或成功的布尔值。这样至少你会知道自己在做什么,并且有一天能够在需求发生变化时维持解决方案。

长话短说,你所追求的是通过一个简单的循环和一些数字检查来实现的。