正则表达式连续发现3个字母的实例php

时间:2014-01-29 16:56:52

标签: php regex

我正在使用第三方API,他们对传递给他们系统的密码有一定的规则。其中之一如下:

连续三次或更多次不包含相同的字母/数字。 (例如,aaa123将连续三个“a”实例失败,但a1a2a3会通过)。

我尝试过寻找解决方案但未能找到解决方案。任何人都可以帮我解决这个问题。我是一名php开发人员,但从头开始创建一个正则表达式并不是很清楚。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

您需要反向引用。

/(.)\1\1/

\1表示“在第一组括号中捕获的内容。”

答案 1 :(得分:2)

这应该做你需要的:

preg_match('/^(?!.*([a-z\d])\1{2})/i', $password)

请参阅back referencesassertions

答案 2 :(得分:1)

您可以使用对\1群组的([a-zA-Z])引用:

/([a-zA-Z])\1{2}/

Demo