Python正则表达式检查字符问题,我在做什么错? [重复]

问题描述 投票:-1回答:1
是Regex的新手,我正在一个项目上,该项目使我可以检查密码是否包含小写字母,大写字母和数字。这是代码:

text = "azeAZE123" compilealpha = re.compile(r'[a-z]*') compileAlpha = re.compile(r'[A-Z]*') compilenum = re.compile(r'[0-9]*') checkalpha = compilealpha.findall(text) checkAlpha = compileAlpha.findall(text) checknum = compilenum.findall(text) print(checkAlpha) print(checkalpha) print(checknum)

我不明白的是我得到了这样的输出:

['', '', '', 'AZE', '', '', '', ''] ['aze', '', '', '', '', '', '', ''] ['', '', '', '', '', '', '123', '']

有人可以向我解释发生了什么事,我做错了什么吗?
python regex search findall
1个回答
0
投票
您的正则表达式指定数量说明符*

0或更多匹配项。当与findall()结合使用时,您的正则表达式也将匹配空的子字符串。

如果要检查正则表达式是否具有

one

个或多个匹配项,请改用r'[A-Z]+'由于您可能对是否有匹配项更感兴趣,而对匹配项则不那么感兴趣,因此您可以考虑使用regexp search()函数而不是findall(),该函数将计算为布尔值。
© www.soinside.com 2019 - 2024. All rights reserved.