学习python笔记《python编程快速上手-让繁琐工作自动化》之六

练习六
强口令检测
写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。强口令的定义是:长度不少于 8 个字符,同时包含大写和小写字符,至少有一位数字。你可能需要用多个正则表达式来测试该字符串,以保证它的强度。

#!python3
import re
def test_password(password):
	right=True	
	if len(password)>=8:
		rules=(r'\d+',r'[a-z]+',r'[A-Z]+')
		for rule in rules:
			ru=re.compile(rule)#初始正则表达式
			mo=ru.search(password)#匹配字符串
			try:
				mo.group()#一旦没有匹配会出现Attribte错误
			except AttributeError:
				right=False#如果出现错误证明缺少对应字符改变标志位
				num=rules.index(rule)#获取出现错误规则的下标
				if num==0:
					print('密码缺少数字')
				elif num==1:
					print('密码缺少小写字母')
				elif num==2:
					print('密码缺少大写字母')	
		if right:
			print('密码通过验证')
	else:
		print('密码少于8位')

strip()的正则表达式版本
写一个函数,它接受一个字符串,做的事情和 strip()字符串方法一样。如果只传入了要去除的字符串,没有其他参数,那么就从该字符串首尾去除空白字符。否则,函数第二个参数指定的字符将从该字符串中去除。

def for_str(word,find=None):
	if find==None:#不传入find则按照空格处理
		l_strip=re.compile(r'^ +| +$')
		#r_strip=re.compile(r' +$')
		#x=l_strip.search(word).group()
		x=l_strip.sub('',word)
		print(x)
	else:#find不为空则替换匹配find值为空
		x_find=re.compile(find)
		result_f=x_find.sub('',word)
		print(result_f)
发布了23 篇原创文章 · 获赞 5 · 访问量 388

猜你喜欢

转载自blog.csdn.net/weixin_43287121/article/details/104483626