[英]python regular expression re.search(r“([a-z]+[A-Z]+[0-9]+)”, password)
python 2.7
>>>import re
>>>password="ULFFunH8ni"
>>>re.search(r"([a-z]+[A-Z]+[0-9]+)", password)
<_sre.SRE_Match object at 0x7ff5ffd075d0>
可以匹配,但何时
>>>password="Fa11con77YES"
>>>re.search(r"([a-z]+[A-Z]+[0-9]+)", password)
>>>
无法匹配,我不知道为什么,有人可以帮助我吗? 谢谢!
如果您要确保密码中至少每个密码(低,大,数字)中至少有一个,则需要进行单独的检查:
low = re.search(r"[a-z]", password)
up = re.search(r"[A-Z]", password)
num = re.search(r"[0-9]", password)
has_all = all((low, up, num))
基本正则表达式是特定于订单的。 这样做的另一种方法是使用先行(如果您的正则表达式支持):
re.search(r"(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])")
但是,这可能比仅单独进行每个检查要低效。
将其更改为:
re.search(r"([az]+[0-9]+[AZ]+)", password)
它也应该与字符的顺序匹配。
您的正则表达式描述的字符串包含1个或多个小写字符,后跟1个或多个大写字符,后跟一个或多个数字。
在第一种情况(ULFFunH8ni)中,它找到的是“ unH8”;
在第二种情况下(Fa11con77YES),没有匹配的子字符串。
如果希望整个字符串与正则表达式匹配,则应使用re.match();。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.