【问题标题】:Python regex if match for more than one criteria in the same regex string如果在同一个正则表达式字符串中匹配多个条件,则 Python 正则表达式
【发布时间】:2019-08-17 23:52:51
【问题描述】:

我目前正在学习 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 匹配。例如:

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]')

感谢您帮我解决这个问题。

【问题讨论】:

    标签: python regex if-statement


    【解决方案1】:

    Regex for password policy。一般来说,答案是:是的,你可以把它放到一个正则表达式中,但你应该考虑不这样做,因为如果你不这样做,一周内维护和阅读/理解会容易得多:)

    【讨论】:

    • 所以看起来多一个是首选,就像一个班轮一样,我无法准确判断哪一个失败了。很高兴知道。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2021-12-27
    • 1970-01-01
    • 2015-09-02
    相关资源
    最近更新 更多