我试图创建一个验证以下条件的正则表达式
我已经有了这个
^(?=.*[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,})
,但只允许连续的小写字母...
答案 0 :(得分:0)
与正则表达式相比,有更简单的方法可以做到这一点。例如,可以使用len(password) >= min_length
解析最小长度。同样,可以使用sum(password.count(let) for let in ["a", "b", "c" ... "z"]) >= min_lower_case
解析最小数量的小写字母。
答案 1 :(得分:0)
您可以使用以下正则表达式
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=(?:.*[\da-zA-Z]){3})\S{8,}$