Python正则表达式,如果在同一个正则表达式字符串中匹配多个条件

时间:2019-03-27 12:05:16

标签: python regex if-statement

我目前正在学习python并做一些练习,并遇到以下问题。我输入了密码,该密码应至少为8个字符,并带有大写字母,小写字母和特殊字符。

我想了解的是,我可以将上述所有内容合并到一个正则表达式中,如下所示,还是需要分别列出每种情况(见下文)。

仅使用一个:

whole_check = re.compile(r'''(
                            [A-Z]    #Check for capital letter
                             \d       #Check for number
                             \W       #check for special character)''', re.VERBOSE)

因此,如果在这里匹配,我该怎么做倍数。例如:

if not [A-Z]:
    do something
if not \d:
    do something

唯一的选择是,如果我在单独的变量中定义每个类别:

cap_letter = re.compile(r'[A-Z]')
small_letter = re.compile(r'[a-z]')

感谢您为我清除此问题。

1 个答案:

答案 0 :(得分:0)

请参见Regex for password policy。通常的答案是:是的,您可以将其放入一个正则表达式中,但是您应该考虑不要这样做,因为如果不这样做,一周之内的维护和阅读/理解将更加容易:)