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

用于不带特殊字符的密码的正则表达式

和嘉澍
2023-03-14

我需要使用正则表达式验证密码

  • 密码应至少包含四个字符,
    • 至少有一个小写字符,
    • 至少有一个大写字符,
    • 至少一个数字

    ^(?=.[0-9])(?=.[a-z])(?=.[a-z])。{4,}$

    我有以上正则表达式工作,但它接受任何特殊字符。我怎么能拒绝呢,请指点

共有1个答案

常乐
2023-03-14

单独验证每个规则可能会更容易、更清晰

def validate_password(password: str) -> bool: 
  return bool(
        len(password) >= 4 and 
    and re.search(r'[a-z]', password) 
    and re.search(r'[A-Z]', password)
    and re.search(r'[0-9]', password)
    and not re.search(r'[^a-zA-Z0-9]', password)  # exclude non alphanumeric
  )

否则你可以用否定的前瞻断言

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.*[^a-zA-Z0-9]).{4,}$
 类似资料:
  • 我试图为密码字段创建一个验证,它只允许字符和 时有什么区别,以及哪些字符来自

  • 问题内容: 好的,我整天都在阅读正则表达式,但仍然不太了解它。我正在尝试做的是验证名称,但是我在互联网上可以找到的功能只能使用,而我需要接受的字符除外。 我基本上需要一个正则表达式来检查名称至少是两个单词,并且不包含数字或特殊字符,例如,但是这些单词可以包含æ,é,Â等字符。 可接受的名称的示例为:“ JohnElkjærd”或“AndréSvenson”。 不可接受的名称为:“ Hans ”,“

  • 问题内容: 我很难提出一个正则表达式,该正则表达式实际上会将某些特殊字符列入黑名单。 我需要使用它来验证输入字段中的数据(在Java Web应用程序中)。我们希望允许用户输入任何数字,字母(我们需要包括带重音的字符,例如法语或德语)和一些特殊字符,例如’-。等等 如何将诸如<>%$等的字符列入黑名单? 问题答案: 我只是将角色列入白名单。 使用正则表达式构建黑名单同样简单,但是你可能需要添加更多字

  • 问题内容: 我的密码强度标准如下: 长度为8个字符否特殊字符Atleast 1个数字Atleast 1个字母 问题答案: 更新: Xcode 8.3.2•Swift 3.1

  • 我需要允许字段使用字母数字和某些其他字符。我正在使用这个正则表达式: 允许的特殊字符是 “_”。我做错了什么?

  • Java 或任何开源库中是否有任何方法可以转义(不引用)特殊字符(元字符),以便将其用作正则表达式? 这在动态构建正则表达式时非常方便,而无需手动转义每个单独的字符。 例如,考虑一个简单的正则表达式,如 \d \.,它匹配小数点()的数字,以及以下代码: 毫不奇怪,上述代码产生的输出是: 也就是说,匹配但(它是“动态”构建的)不匹配(相反,它匹配文字字符串)。 那么,有没有一种方法可以自动转义每个