Python编程快速上手——让繁琐工作自动化(第七章)
7.18.1 强口令检测
题目
- 写一个函数,它使用正则表达式,确保传入的口令符号是强口令。
- 强口令的定义是:长度不少于8个字符,同时包含大写与小写字符,至少有一个数字。
- 你可能需要用多个正则表达式来测试该字符串,以保证它的强度。
分析
- emmm,没啥好分析了,本题拿来练练compile( )和search( )。
- 调用了pyperclip模块,耍耍计算机的剪贴板。
代码
import re, pyperclip
def passWord(password):
passwordRegex1 = re.compile(r'[0-9]')
passwordRegex2 = re.compile(r'[a-z]')
passwordRegex3 = re.compile(r'[A-Z]')
passwordRegex4 = re.compile(r'.{8,}')
if passwordRegex1.search(password) and passwordRegex2.search(password) and \
passwordRegex3.search(password) and passwordRegex4.search(password):
print(password+ '符合强口令')
else:
print(password+ '不符合强口令')
text = str(pyperclip.paste())
passWord(text)
测试
7.18.2 strip( )的正则表达式版本
题目
- 写一个函数,它接受一个字符串,做的事情和strip()字符串方法一样。
- 如果只传入了要去除的字符串,没有其他参数,那么就从该字符串首尾去除空白字符。
- 否则,函数第二个参数指定的字符将从该字符串中去除。
分析
- 学会如何将变量放在正则表达式:re.compile(r’[’+变量+’]’) 或者re.compile(r’(’+变量+’)’) 。 参考链接.
涉及到小括号( )和中括号[ ]在正则表达式中的表示。参考链接.
- 让函数的默认值为空格。
代码
import re, pyperclip
def rStrip(text, delchar=' '):
stringRegex = re.compile(r'^['+ delchar +']*|['+ delchar +']*$')
print(stringRegex.sub('', text))
text = str(pyperclip.paste())
print(text)
rStrip(text)
测试
心得