regex,用于验证包含字母数字但不包含相同字符的字符串


regex to valiadte a string with alphanumeric and but no identical characters

我正在开发一个正则表达式来验证一个字符串,

  • 包含字母数字值
  • 连续包含相同字符的次数不超过4次(如aaaaa222222
  • 总长度应在6到15之间

我使用以下regex,但它不适用于输入=>String1bbbbb

/^(?=.*[a-z])(?='S*[A-Z])(?='S*[0-9])(?!.*['w{4,}])[a-zA-Z0-9]{6,15}+$/i

if(preg_match('/^(?=.*[a-z])(?='S*[A-Z])(?='S*[0-9])(?!.*['w{4,}])[a-zA-Z0-9]{6,15}+$/i', $string)) {
    echo "Valid String";
} else {
    echo "invalid String";
}

使用负面前瞻来验证相同的字符,如下面的

(?!.*[''w{4,}])

如有任何帮助,我们将不胜感激。

您可以使用以下正则表达式:

^(?=.{6,15}$)(?:([A-Za-z0-9])'1{0,3}(?!'1))+$

这将确保长度在6到15之间,它将捕捉角色,可能会再重复3次,然后它将确保相同的角色不会在下一个位置再次重复。在regex101中有它:https://regex101.com/r/aO7pM5/1