具体密码正则表达式

Specific password regular expression

我在创建正则表达式时遇到问题。需要填写以下内容:

1) 有 8-12 个字符

2) 至少1个大写字母

3) 至少3个小写字母

4) 至少 1 个号码

5) 至少1个特殊字符

6) 必须以小写、大写或数字开头

7) 最多2个重复字符

提前致谢!

到目前为止你得到了什么? 另外,您使用的是哪组正则表达式?

我将从表达式的长度开始

  1. 限制为 8-12,类似于 [a-zA-Z]{8,12}

  2. 对于第一个的要求你可以使用[]+

对于其他要求,它有点诡计

这应该有效

^(?=.*[A-Z])(?=(?:.*[a-z]){3})(?=.*[0-9])(?=.*[!"#$%&'()*+,\-./:;<=>?@[\]^_`{|}~])(?=(?:(.)(?!))+$)[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)
           (?!   )
      )+
      $ 
 )
 [a-zA-Z0-9]                   # First alnum
 .{7,11}                       # 8 to 12 max chars
 $                             # EOS