练习六
强口令检测
写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。强口令的定义是:长度不少于 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)