用于密码匹配的Python正则表达式(重新)

时间:2018-05-29 06:34:42

标签: python regex python-2.7

我正在尝试根据以下条件验证输入的密码

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请帮助我。!!!!!

1 个答案:

答案 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:

而不是使用正则表达式。