我正在尝试根据以下条件验证输入的密码
1.应包含至少2个大写字母
2.应包含至少2个小写字母
3.字符串的最小长度必须为6
4.应至少包含2位数字
5.应包含至少1个特殊字符
6.密码长度必须为10
我尝试创建类似
的模式import re
res=re.match(r'[[A-Z{2,}][a-z{2,}][0-9{2,}][/s]+]{10}',"AaBb69%#Ag")
print res
但是它返回了None.Anyone请帮助我。!!!!!
答案 0 :(得分:0)
使用单个正则表达式无法完成您想要做的事情。您需要为每个约束匹配不同的正则表达式,并且密码仅在每个约束匹配时才有效。
对于至少两个大写字符的约束,将两个大写字符与两者之间的任何内容匹配:r'[A-Z].*[A-Z]'
小写:r'[a-z].*[a-z]'
对于数字:r'[0-9].*[0-9]'
至少有一个特殊字符:r'[!@#$%^&*()-_=+]'
,括号中包含您允许的特殊字符。
长度,最小值为6,最大值为10:r'^.{6,10}$'
虽然您可以使用正则表达式执行此操作,但您可能会发现在普通的python中简单地编写没有它们的约束更容易。以长度为例,你可以做到
if 6 <= len(password) and len(password) <= 10:
而不是使用正则表达式。