[python]Python符号化スタンプ-435練習問題:電子メールアドレスのチェック



練習問題:見に行く

43.5練習問題:電子メールアドレスをチェックする


次のソースコードを完了して、指定したEメールアドレスが正しいかどうかを確認します.Eメールリストでは、最初の5つのフォーマットが正しく、後の3つのフォーマットが無効です.
import re
 
p = re.compile(___________________________________)
emails = ['[email protected]', '[email protected]',              # 올바른 형식
          '[email protected]', '[email protected]',         # 올바른 형식
          '[email protected]',                                    # 올바른 형식
          '@example.com', 'python@example', 'python@example-com']          # 잘못된 형식
 
for email in emails:
    print(p.match(email) != None, end=' ')

実行結果


True True True True True False False False

正解


'^[a-zA-Z0-9+-_.]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$'

解説


Eメールはアカウント@ドメインです.上位ドメインフォーマット、勘定科目の+、-、.などなど.また、ドメインでは文字を使用できます.上位ドメインは複数のレベルで使用できます.これらの規則に基づいて正規表現を作成します.^[a-zA-Z0-9+-_.]+@は、電子メールの@に基づいてアカウントを識別し、前の^に基づいてアカウントが一番前にあるかどうかを判断する.
さらに、[a-zA-Z0-9+-_.]+、例えば영문 대소문자, 숫자, +, -, _, .であるべきである.문자 1개 이상は、ドメインおよび最上位ドメイン(TLD)を表す.
まず、[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$のように、英語の大文字と小文字、数字、-および1つ以上の文字を判断します.
そして真ん中に[a-zA-Z0-9-]+を置きます最上位ドメイン形式であるかどうかを確認します.
ここで、\.は正規表現に使用される特殊文字であるため、前にを付けなければならない.
特に、トップドメインは、.のような複数のレベルであり得る.追加します.さらに、$を追加して、最後の上位ドメインを決定することもできます.