概述
快考试了,一些太复杂的正则表达式咱在开发中都是直接copy,但是考试就没有办法copy了,这时候,我们可以使用re模块中的findall()函数来将要求分别进行匹配,这倒也不失为一种方式,尽管麻烦了一点,但也能写出来
def patchPassWord(password:str):
'''
检查密码标准:
1、至少[a-z]之间至少要有一个字母
2、[A-Z]之间至少要有一个字母
3、[0-9]之间至少要有一个数字
4、[@#$]之间至少有一个字符
考虑将密码分成几个匹配式子来判断
:param password: 传入的密码串
:return: 至少有一个
'''
c1 = re.compile('[a-z]+')
# 匹配a-z
c2 = re.compile('[A-Z]+')
# 匹配大写字母
c3 = re.compile('[0-9]+')
# 匹配数字
c4 = re.compile('[@#$]+')
# 匹配特殊字符
b = True
strLen = 0
# 密码长度
li = [c1, c2, c3, c4]
for c in li:
patchstr=c.findall(password)
if patchstr != None:
strLen+= len(''.join(patchstr)) # 将完全匹配的列表转化为字符串,并计算长度
# 匹配不到任意一个则返回假
if len(patchstr)==0:
return False
# 判断长度是否合适
if strLen<6 or strLen>12:
b=False
return b
封装到函数里面,将所有正则对象都存进列表 ,然后遍历列表,对依次对传入的密码进行匹配(这里涉及到一个''.join()是为了将findAll()返回的列表拼接成字符串,然后返回长度),并计算总长度
最后
以上就是怕孤单牛排为你收集整理的python--正则表达式匹配密码的全部内容,希望文章能够帮你解决python--正则表达式匹配密码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复