8~20位的密码正则表达式 不允许输入汉字
时间: 2023-06-02 08:03:12 浏览: 123
^(?![\u4e00-\u9fa5])(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z\d]{8,20}$
解释:
- ^ 开头
- (?![\u4e00-\u9fa5]) 不允许输入汉字
- (?=.*\d) 必须包含至少一个数字
- (?=.*[a-zA-Z]) 必须包含至少一个字母
- [a-zA-Z\d]{8,20} 由字母和数字组成,长度为8到20位
- $ 结尾
相关问题
不允许特殊符号的正则表达式
好的,以下是中文回复:
首先,我们需要导入re模块来使用正则表达式。然后,从键盘输入整数n,使用random模块随机生成n位密码。接着,使用正则表达式判断密码的强度,包含字母、数字、特殊符号,长度不小于8位,分别对应不同的密码特级。如果密码的强度为“strong”,则将其存入一个字典中。最后,输出字典中的所有密码。
具体实现可以参考以下代码:
import re
import random
n = int(input("请输入密码位数:"))
password = ''.join(random.sample('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+', n))
pattern1 = re.compile(r'[a-zA-Z]+')
pattern2 = re.compile(r'\d+')
pattern3 = re.compile(r'[!@#$%^&*()_+]+')
if len(password) >= 8 and pattern1.search(password) and pattern2.search(password) and pattern3.search(password):
password_dict = {'strong': password}
print("密码强度为strong,已存入字典中。")
else:
print("密码强度不足,未存入字典中。")
print("字典中的所有密码为:", password_dict.values())
阅读全文