python 正则匹配含有大写字母、小写字母、数字、特殊字符 密码

python 正则匹配含有大写字母、小写字母、数字、特殊字符 密码

正则表达式:

^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8,}$

表达式说明:

^匹配开头
(?![A-Za-z0-9]+$)匹配后面不全是(大写字母或小写字母或数字)的位置,排除了(大写字母、小写字母、数字)的1种2种3种组合
(?![a-z0-9\\W]+$)匹配后面不全是(小写字母或数字或非字母数字)的位置,排除了(小写字母、数字、特殊符号)的1种2种3种组合
(?![A-Za-z\\W]+$)匹配后面不全是(大写字母或小写字母或非字母数字)的位置,排除了(大写字母、小写字母、特殊符号)的1种2种3种组合
(?![A-Z0-9\\W]+$)匹配后面不全是(大写字母或数字或非字母数字),排除了(大写字母、数组、特殊符号)的1种2种3种组合
^.匹配除换行符以外的任意字符,因为排除了上面的组合,所以就只剩下了4种都包含的组合了
{8,}8位以上
$匹配字符串结尾

代码:

import re


def check_pwd(string):
    pattern = r'^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8,}$'
    res = re.search(pattern, string)
    print(res)
    if res:
        return "OK"
    else:
        return "NO"


if __name__ == '__main__':
    a = 'ABCabc012!@#'
    print(check_pwd(a))

猜你喜欢

转载自blog.csdn.net/weixin_42795859/article/details/93757557