Pythonのreモジュールでパスワード合格検証プログラムを実現

1888 ワード

一、需要
ユーザーが入力したパスワードが要求に合っているかどうかを確認します.パスワードの要求は次のとおりです.
1.8文字以下
2.大文字と小文字、数字、下線のみを含めることができます
3.大文字、小文字、数字の3つのタイプには、少なくとも2つのタイプが含まれます.
二、基礎知識
reモジュール(正規表現)は、文字列が何らかのルールに合致しているかどうかを検証するために使用でき、パスワード合格検証プログラムで良い役割を果たすことができます.
このケースでは主にfindall()とsearchの2つの関数を使用します.次に、この2つの関数を簡単に紹介します.
findall(シーケンス、検証する文字列)
この関数を使用して、文字列に指定したシーケンスの文字が含まれているかどうかを確認し、結果はリストであり、リストには条件に合致するすべての文字が含まれています.
import re
result=re.findall('[a-z]','Michael Jackson')
#    Michael Jackson        ,[a-z]   a z26     
print(result)

端末:['i','c','h','a','e','l','a','c','k','o','n']戻る結果はMichael Jacksonのすべての小文字で、繰り返しても計算されます
search(シーケンス、検証する文字列)
この関数がfindallと異なるのは、文字列の中で最初の条件に合った文字に出会ったら戻り、探し続けることができないことです.また,返されるデータはリスト形式ではなく,マッチングの結果を容易に観察するためにgroup()法を借りることができる.
import re
result=re.search('[a-z]','Michael Jackson')
print(result.group())

端末:i#Michael Jacksonで最初の小文字iが見つかりました
三、コード実装
import re

#                judge
def judge(password):
    if len(password)<8:
        print('  8   ')
    #          :               ,               ,  findall                      ;              ,  findall                (             )
    elif len(re.findall('[A-Za-z0-9_]',password))=2:
            print('  ')
        else:
            print('      ,  、               ')
        

password=input('''     .  :
1.  8    
2.      、          
3.  、    、               
>>>''')
judge(password)