|
代码如下:- import re
- def check_password(password):
- # 检查长度是否在6-20之间
- if not 6 <= len(password) <= 20:
- return False
- # 检查是否包含小写字母
- if not re.search(r'[a-z]',password):
- return False
- # 检查是否包含大写字母
- if not re.search(r'[A-Z]',password):
- return False
- # 检查是否包含数字
- if not re.search(r'[0-9]',password):
- return False
- # 检查是否包含特殊字符
- if not re.search(r'[!@#$%^&*()_+-=,.<>?]',password):
- return False
- return True
- # 测试
- password = "Abc123!@"
- print(check_password(password)) # True
- password = "abc"
- print(check_password(password)) # False
复制代码 描述信息:
- 代码中我们定义了一个 check_password 函数,该函数接受一个参数 password,表示要验证的密码
- 首先判断密码长度是否在6-20之间,如果不是,直接返回False
- 使用正则表达式 re.search("[a-z]", password) 判断密码中是否包含小写字母,如果不包含,返回False
- 同理使用 re.search("[A-Z]", password) 判断是否包含大写字母,使用 re.search("[0-9]", password) 判断是否包含数字, 如果不是,直接返回False
当然, 你也可以使用 re.compile() 函数编译了一个正则表达式,代码如下:- import re
- password_pattern = re.compile(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+-=,.<>?])[A-Za-z\d!@#$%^&*()_+-=,.<>?]{6,20}$')
- # 测试
- password = "Abc123!@"
- print(bool(password_pattern.match(password))) # True
- password = "abc"
- print(bool(password_pattern.match(password))) # False
复制代码 描述信息:
- 正则表达式中我们使用了 (?=.[a-z]) 匹配至少一个小写字母, (?=.[A-Z]) 匹配至少一个大写字母, (?=.\d) 匹配至少一个数字,(?=.[!@#$%^&()_+-=,.<>?]) 匹配至少一个特殊字符, [A-Za-z\d!@#$%^&()_+-=,.<>?]{6,20}$ 匹配6-20位的字符串
- 使用 .match()方法来匹配字符串,如果匹配成功返回一个match object,否则返回None
附要求:6位密码,含有数字、大小写字母,及~!@中的特殊符号- import re
-
- while True:
- pwd = input('请输入您的密码:')
- r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@])[0-9a-zA-Z~!@]{6}$'
- result = re.match(r, pwd)
- if result is None:
- print('请输入正确的密码格式!')
- print('要求6位密码,含有数字、大小写字母,及~!@中的特殊符号!')
- else:
- break
-
- print('成功设置密码!')
- print(f'您的密码是:{pwd}')
复制代码 (?=.*?\d) 检查数字;(?=.*[a-z]) 检查小写英文字母;(?=.*[A-Z]) 检查大写英文字母;
测试:
- # 若不限制长度
- r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@]).*$'
复制代码 总结
到此这篇关于Python验证用户密码是否规范脚本的文章就介绍到这了,更多相关Python验证用户密码规范内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://www.jb51.net/python/321041m3t.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|