这个问题在这里已有答案:
我正在尝试创建一个验证以下条件的正则表达式
-
最小*长度
-
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 回答
您可以使用以下正则表达式
Regex explanation here.
与正则表达式相比,有更简单的方法可以做到这一点 . 例如,可以使用
len(password) >= min_length
解析最小长度 . 同样,可以使用sum(password.count(let) for let in ["a", "b", "c" ... "z"]) >= min_lower_case
解析最小数量的小写字母 .