jCu*_*uga 13 python regex passwords
在Python中使用正则表达式,如何验证用户的密码是:
注意,所有字母/数字/特殊字符都是可选的.我只想验证密码长度至少为8个字符,并且仅限于字母/数字/特殊字符.如果用户选择,则由用户选择更强/更弱的密码.到目前为止我所拥有的是:
import re
pattern = "^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$"
password = raw_input("Enter string to test: ")
result = re.findall(pattern, password)
if (result):
print "Valid password"
else:
print "Password not valid"
Run Code Online (Sandbox Code Playgroud)
Amb*_*ber 26
import re
password = raw_input("Enter string to test: ")
if re.match(r'[A-Za-z0-9@#$%^&+=]{8,}', password):
# match
else:
# no match
Run Code Online (Sandbox Code Playgroud)
的{8,}
意思是"至少8".该.match
函数要求整个字符串与整个正则表达式匹配,而不仅仅是一部分.
我同意哈米什.不要使用正则表达式.为每个测试使用离散函数,然后按顺序调用它们.明年,当您想要在密码中要求至少2个大写字母和2个小写字母时,您将不满意尝试修改该正则表达式.
另一个原因是允许用户配置.假设您将程序卖给想要12个字符密码的人.修改单个函数来处理系统参数比修改正则表达式更容易.
// pseudo-code
Bool PwdCheckLength(String pwd)
{
Int minLen = getSystemParameter("MinPwdLen");
return pwd.len() < minlen;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26191 次 |
最近记录: |