当前位置: 首页 > 知识库问答 >
问题:

Python regex:密码必须至少包含一个大写字母和数字

贺浩壤
2023-03-14

我正在使用Python和Flask对密码进行表单验证。密码需要包含至少一个大写字母和至少一个数字。

我目前失败的尝试...

re.compile(r'^[A-Z\d]$')

共有1个答案

韩禄
2023-03-14

我们可以使用模式'\d.*[A-Z][A-Z].*\d'搜索至少有一个大写字母和一个数字的条目。从逻辑上讲,大写字母和数字出现在字符串中只有两种方式。要么字母在前,数字在后,要么数字在前,字母在后。

管道表示‘或',所以我们将分别查看每一面。\d.*[A-Z]匹配后面跟着大写字母的数字,[A-Z].*\d匹配后面跟着数字的任何大写字母。

words = ['Password1', 'password2', 'passwordthree', 'P4', 'mypassworD1!!!', '898*(*^$^@%&#abcdef']
for x in words:
    print re.search('\d.*[A-Z]|[A-Z].*\d', x)
#<_sre.SRE_Match object at 0x00000000088146B0>
#None
#None
#<_sre.SRE_Match object at 0x00000000088146B0>
#<_sre.SRE_Match object at 0x00000000088146B0>
#None
 类似资料: