python 判断密码是否合法

发布于 2020-02-18 21:42:57

Python的re 模块提供字符正则匹配检查,功能强大,写法高效简洁,因此在工作中会被经常使用。

今天举一个小例子说明re的一些主要功能。

例子描述

判断密码是否安全,设计一个密码是否安全的检查函数。

密码安全要求:

  • 要求密码为6到20位,
  • 密码只包含英文字母和数字

导入模块

导入正则模块

import re

编写正则规则

a = re.compile(r'[0-9a-zA-Z]{6,20}')

a为正则对象,里面方法包括matchfullmatch

r表示后面为正则字符

[] 表示匹配字符集合,此处0-9a-zA-Z满足密码只包含英文字母和数字

{6,20} 表示字符长度,满足要求密码为6到20位

检查例子

In [6]:a.fullmatch('ddd234ws')
Out[6]:Match object; span=(0, 8), match='ddd234ws'>

fullmatch表示整个字符串是否匹配,显然字符串ddd234ws完全匹配

In [7]: a.fullmatch('ddd234ws###')
# 返回None,表示字符串不匹配我们的要求

# 如下都是不匹配的例子
In [8]: a.fullmatch('dd')
In [9]: a.fullmatch('dd3')
In [10]: a.fullmatch('dd3wsxfdfdsfsfdwe3342532fscsdcsdfsdfsd')

完整代码

import re
def check(mystr):
    a = re.compile(r'[0-9a-zA-Z]{6,20}')
    if a.fullmatch(mystr) is None:
        return '密码只能包含英文字母和数字,长度6~20'
    return '密码安全'
0 条评论

发布
问题