練習6つの
強力なパスワードを検出
用途正規表現はパスワードで渡された文字列は、強力なパスワードであることを確実にするという機能を記述します。強力なパスワードの定義は次のとおりです。長さは劣らず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位')
ストリップ()正規表現のバージョンの
書き込み文字列を取る関数、同じこと及びストリップ()文字列のメソッドを実行します。唯一の着信文字列を削除する場合は、他のパラメータは、その後、末尾に文字列の末尾から空白文字を削除しません。それ以外の場合は、2番目のパラメータを指定文字の関数は、文字列から削除されます。
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)