题目:
写一个函数,使用正则表达式,确保传入的口令字符串是强口令。强口令的定义是:
长度不少于8个字符,同时包含大写和小写字符,至少有一位数字。
你可能需要用多个正则表达式来测试该字符串,以保证它的强度。
import re
def judgePw(password):
pwRegex=re.compile(r'^(.{8})(.*)?') #判断是否符合长度不少于8个字符
mo=pwRegex.search(password)
try:
pw=mo.group()
except:
print('输入的长度不可以少于8个字符')
return False
judgeRegex=re.compile(r'(?=.*\d)(?=.*[a-z])(?=.*[A-Z])')
mo1=judgeRegex.findall(password)
a='输入口令为强口令,恭喜设置密码成功'
if len(mo1):
return print(a)
else:
return False
while True:
password=input("请输入密码:")
result = judgePw(password)
if result==False:
print('请输入有效密码:长度不少于8个字符,同时包含大写和小写字符,至少有一位数字。')
else:
break
正则表达式中(?=.*)表示从任意位置开始查找
(?=.*\d),至少有一个数字,匹配成功。
(?:,),它表示匹配0或多个','号