1.表达式
^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![^(0-9a-z)]+$)(?![a-z0-9]+$)(?![^(0-9A-Z)]+$)(?![^(a-zA-Z)]+$).{8,}$
2.说明
一、(?!),类似if,先判断括号里面的表达式,再去匹配。这里是先判断
①包含不是a-zA-Z
②包含不是A-Z0-9
③包含不是^(0-9a-z),即包含是0-9a-z
④包含不是a-z0-9
⑤包含不是^(0-9A-Z),即包含是0-9A-Z
⑥包含不是^(a-zA-Z),即包含是a-zA-Z
然后再匹配.{8,}(至少8个)。
二、表达式化简
A-Z^(0-9a-zA-Z)
化简后的表达式
^(0-9a-z)
说明:^(0-9a-zA-Z)匹配特殊符号,其他的同样化简。
三、a-z匹配小写字母,A-Z匹配大写字母,0-9匹配数字,^(0-9a-zA-Z)匹配特殊符号。这4种组合结果是:其中一种、其中两种、其中三种、其中四种。因为有四种就包含三种两种一种,同理有两种就包含一种,所以只要排除其中两种组合的(说明一的6种组合),剩下的就是三种和四种的组合。