使用最稳的方法:\da-zA-Z满足`密码只包含英文字母和数字`
编辑日期: 2024-11-28 文章阅读: 次
@author jackzhenguo
@desc
@date 2019/8/3
97 使用正则做密码安全检查
密码安全要求:
1)要求密码为6到20位;
2)密码只包含英文字母和数字
pat = re.compile(r'\w{6,20}') # 这是错误的,因为\w通配符匹配的是字母,数字和下划线,题目要求不能含有下划线
pat = re.compile(r'[\da-zA-Z]{6,20}')
fullmatch
方法,查看是否整个字符串都匹配:
pat.fullmatch('qaz12') # 返回 None, 长度小于6
pat.fullmatch('qaz12wsxedcrfvtgb67890942234343434') # None 长度大于22
pat.fullmatch('qaz_231') # None 含有下划线
pat.fullmatch('n0passw0Rd')
Out[4]: <re.Match object; span=(0, 10), match='n0passw0Rd'>