代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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 |
描述信息:
当然, 你也可以使用 re.compile() 函数编译了一个正则表达式,代码如下:
1 2 3 4 5 6 7 8 9 |
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 |
描述信息:
附要求:6位密码,含有数字、大小写字母,及~!@中的特殊符号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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]) 检查大写英文字母;
测试:
1 2 |
# 若不限制长度 r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@]).*$' |
总结