我在创建常规表达时遇到问题。它需要满足以下条件:
1)有8-12个字符
2)至少1个大写字母
3)至少3个小写字母
4)至少1个号码
5)至少有一个特殊字符
6)必须以小写,upercase或数字
开头7)最多2个重复字符
提前致谢!
答案 0 :(得分:0)
到目前为止你得到了什么? 另外,你使用哪组正则表达式?
我从表达式的长度开始
将其限制为8-12,类似于[a-zA-Z] {8,12}
对于第一个要求,您可以使用[] +
对于其他要求,它有点小问题
答案 1 :(得分:0)
这应该有效
^(?=.*[A-Z])(?=(?:.*[a-z]){3})(?=.*[0-9])(?=.*[!"#$%&'()*+,\-./:;<=>?@[\]^_`{|}~])(?=(?:(.)(?!\1\1))+$)[a-zA-Z0-9].{7,11}$
解释/扩展
^ # BOS
(?= .* [A-Z] ) # 1 upper
(?=
(?: .* [a-z] ){3} # 3 lower
)
(?= .* [0-9] ) # 1 number
(?=
.* [!"#$%&'()*+,\-./:;<=>?@[\]^_`{|}~] # 1 special
)
(?= # Maximum 2 repeating
(?:
( . ) # (1)
(?! \1 \1 )
)+
$
)
[a-zA-Z0-9] # First alnum
.{7,11} # 8 to 12 max chars
$ # EOS