【问题标题】:Regular expression to validate password needs mix digits and letters(python) [duplicate]验证密码的正则表达式需要混合数字和字母(python)[重复]
【发布时间】:2014-12-11 15:14:59
【问题描述】:

我正在尝试编写一个正则表达式来满足密码标准,该密码标准应为 6-8 个字符长。它由混合了数字和字母的字母数字字符组成。


import re
def validate(passwd): 
    reg = r"[a-z0-9]{6,8}"  # regular expression
    match = re.match(reg, passwd)
    if match:
        return "Valid password."
    else:
        return "Invalid password."

reg = r"[a-z0-9]{6,8}" # regular expression

但是,我在这里写的仍然匹配所有字母或所有数字模式。

reg = r"(?=.*\d)(?=.*[a-z]).{6,8}"

这个看起来更近了,但仍然无法排除包含_的模式

想请教怎么做? 谢谢。

【问题讨论】:

    标签: python regex


    【解决方案1】:
    ^(?=.*\d)(?=.*[a-z])[a-zA-Z0-9]{6,8}$
    

    添加锚点使其严格匹配。

    【讨论】:

    • 感谢您的回复。即使在正则表达式中添加 ^,此模式“12340_ah”仍然匹配。
    • 它有效!我也试过 (?=.*\d)(?=.*[a-z])[a-zA-Z0-9]{6,8},这也有效。似乎可以忽略严格匹配^。谢谢!
    猜你喜欢
    • 2011-02-09
    • 2015-10-24
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 2013-04-09
    • 2015-07-04
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多