该参数是一个字符串。检查它是否构成安全密码。密码在以下情况下是安全的:
我试过了:
regex = [r'^.{8,20}$', r'[a-z]+', r'[A-Z]+', r'\d+', r'[-+*/.@]', r'(.)(.)(.)(\1\2\3)']
return all(re.search(pas, password) for pas in regex)
发布于 2018-06-18 06:31:00
您可以使用先行断言:
import re
reg=re.compile(r"(?=.*[a-z]+.*)(?=.*[A-Z]+.*)(?=.*\d+.*)(?=.*[-\+\*\./@]+.*)(?!.*(.)\1\1.*)(?!.*(.{3}).*\2.*).{8,20}$")
pwds=[ "aA3@5678", "aA3@567","abcdefghABCDEFGH+-*3","abcdefghABCDEFGH+-*3X","aA3@555678","aA3@@@5678", "a_A3Q_5678*A3Q", "a_A+Q_3.14/-5678*A+Q"]
for pwd in pwds:
m=reg.fullmatch(pwd)
print("{}: {}".format(pwd,"good" if m else "bad"))
https://stackoverflow.com/questions/50900038
复制相似问题