"""
Chapter 7 模式匹配和正則表示式
1 用import re 匯入正則表示式模組
2 用re.compile()函式建立一個Regex物件(記得使用原始字串)
3 向Regex物件的search()方法傳入想查詢的字串,返回一個Match物件;或者findall()返回一組字串,包含被查詢字串中所有的匹配
notes:
1 花括號的貪心和非貪心匹配,re.compile(r'(Ha){3,5}') 和 re.compile(r'(Ha){3,5}?')
"""
# excise1 口令強度檢測
#1> 長度大於8個字元
#2> 包含大寫和小寫字元
#3> 至少有1位數字
import re def passwdCheck(passwdstr):
if len(passwdstr) < 8:
return False regex1 = re.compile(r'[a-z]+')
regex2 = re.compile(r'[A-Z]+')
regex3 = re.compile(r'\d+')
if regex1.search(passwdstr) == None:
return False
elif regex2.search(passwdstr) == None:
return False
elif regex3.search(passwdstr) == None:
return False
else:
return True if __name__ == '__main__':
passstr = input("請輸入要設定的密碼:") count = 1
while(count<3):
if passwdCheck(passstr):
print("密碼%s滿足要求,密碼設定成功!" % passstr)
break
else:
print("密碼不滿足要求,至少8個字元且包含大小字母和數字,請重新輸入")
passstr = input("請輸入要設定的密碼:")
count += 1
if count >=3:
print("已經超過最大嘗試次數3次,程式退出!")