7.18 实践项目
7.18.1 强口令检测
写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。强口令的定义是:长度不少于8 个字符,同时包含大写和小写字符,至少有一位数字。你可能需要用多个正则表达式来测试该字符串,以保证它的强度。
import re
def kongling_test(test):
match1 = re.compile(r'\d')
match2 = re.compile(r'[A-Z]+')
match3 = re.compile(r'[a-z]+')
match4 = re.compile(r'[^A-Za-z0-9]')
if len(test) < 8:
print("长度小于8\n")
else:
if match1.search(test) is None:
print("不是强口令,match1\n")
else:
if match2.search(test) is None:
print("不是强口令,match2\n")
else:
if match3.search(test) is None:
print("不是强口令,match3\n")
else:
if match4.search(test) is not None:
print("不是强口令,match4\n")
else:
print("是强制口令\n")
# 验证一下
kongling_test("134safgfdgDASFDSD")
7.18.2 strip()的正则表达式版本
写一个函数,它接受一个字符串,做的事情和strip()字符串方法一样。如果只传入了要去除的字符串,没有其他参数,那么就从该字符串首尾去除空白字符。否则,函数第二个参数指定的字符将从该字符串中去除。
import re
def strip(test, character=r""):
"""去除首尾的空白字符以及第二个参数指定的字符"""
begin_blank = re.compile(r'^\s+')
test_out = begin_blank.sub("", test) #去除首空白字符
end_blank = re.compile(r'\s+$')
test_out = end_blank.sub("", test_out) #去除尾空白字符
character_replace = re.compile(character)
test_out = character_replace.sub("", test_out)
return test_out
# 验证一下
print(strip(" sdjgfifd xdf "))
print(strip(" sabgfabd xdf ", character=r'ab'))
sdjgfifd xdf
sgfd xdf