对于验证密码的正则理解(包含数字字母特殊字符)

验证密码的正则(包含数字字母特殊字符 6到16位)

re = '^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$\%\^\&\*\(\)])[0-9a-zA-Z!@#$\%\^\&\*\(\)]{6,16}'

这里使用的是正则的零宽断言 (? = xxx)

^ 开始,表示从第零个位置开始匹配
(?= .*[0-9]) 匹配以任意字符开始后面跟数字(注意零宽断言,是匹配到了才会继续往下匹配,但是实际上是不拿数据的,下次匹配还是从第0个位置开始)
(?= .*[a-zA-Z]) 匹配以任意字符开始后面跟字母 (同上)
(?=.*[!@#$\%\^\&\*\(\)]) 匹配以任意字符开始 后面跟 ! @ # $ % ^ & * ( ) 任意一个特殊字符 (同上)
[0-9a-zA-Z!@#$\%\^\&\*\(\)]{6,16} 注意这里才是真实的匹配数据,只有前面三个都符合才会匹配这个表达式,真实的取数据