首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python正则表达式密码(r“([a-z]+[A-Z]+[0-9]+)”,re.search)

python正则表达式密码(r“([a-z]+[A-Z]+[0-9]+)”,re.search)
EN

Stack Overflow用户
提问于 2016-05-08 01:12:41
回答 3查看 12.6K关注 0票数 0

python 2.7

代码语言:javascript
复制
>>>import re
>>>password="ULFFunH8ni"
>>>re.search(r"([a-z]+[A-Z]+[0-9]+)", password)
<_sre.SRE_Match object at 0x7ff5ffd075d0>

可以匹配,但当

代码语言:javascript
复制
>>>password="Fa11con77YES"
>>>re.search(r"([a-z]+[A-Z]+[0-9]+)", password)
>>>

不能匹配,我不知道为什么,有人能帮我吗?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-08 01:19:06

如果您试图确保密码至少包含其中之一(下限、上限、数字),则需要进行单独检查:

代码语言:javascript
复制
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))

基本的正则表达式是特定于订单的。另一种方法是使用lookahead(如果您的regex风格支持):

代码语言:javascript
复制
re.search(r"(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])")

然而,这可能比单独执行每个检查的效率要低。

票数 4
EN

Stack Overflow用户

发布于 2016-05-08 01:16:58

将其更改为:

re.search(r"([a-z]+[0-9]+[A-Z]+)", password)

它也应该与字符的顺序相匹配。

票数 0
EN

Stack Overflow用户

发布于 2016-05-08 01:17:05

正则表达式描述具有1个或多个小写字符、1个或多个大写字符以及一个或多个数字的字符串。

在第一种情况下(ULFFunH8ni),它找到"unH8";

在第二种情况下(Fa11con77YES)没有匹配的子字符串。

如果希望整个字符串与正则表达式匹配,则应使用re.match();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37091415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档