首页 文章

密码的正则表达式:至少3位数/更低/更高[重复]

提问于
浏览
0

这个问题在这里已有答案:

我正在尝试创建一个验证以下条件的正则表达式

  • 最小*长度

  • Min *小写

  • Min *大写

  • 最小*特殊字符

我已经有了这个

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,}$

^(?=.*[0-9]) // At least 1 digits
(?=.*[a-z]) // At least 1 lower case
(?=.*[A-Z]) // At least 1 upper case
(?=.*[@#$%^&+=]) // At least 1 special character
.{8,}$ // length 8

问题是我需要在字符串的任何位置验证至少3位数/更低/更高 .

我有什么可以添加到我的RE以使其成为可能?我试图使用 (?=.*[a-z]{3,}) ,但只允许连续的小写字母...

2 回答

  • 0

    您可以使用以下正则表达式

    ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=(?:.*[\da-zA-Z]){3})\S{8,}$
    

    Regex explanation here.

    Regular expression visualization

  • 0

    与正则表达式相比,有更简单的方法可以做到这一点 . 例如,可以使用 len(password) >= min_length 解析最小长度 . 同样,可以使用 sum(password.count(let) for let in ["a", "b", "c" ... "z"]) >= min_lower_case 解析最小数量的小写字母 .

相关问题