電子メール検証における正規表現の落とし穴
正規表現を使用した電子メール アドレスの検証は、特にサブドメイン アドレスの場合、難しい作業になる可能性があります。この課題に対処するために、正規表現のみに依存することの限界を調べてみましょう。
正規表現検証の制限
電子メール アドレスの構文の正確性 (例: 存在するかどうか) を検証する際@ と .) の場合、正規表現ではタイプミスが考慮されず、アドレスが実際に存在するかどうかが確認されません。これらの問題を解決するには、より広範なチェック、つまり次のチェックが必要です。
推奨される単純なチェック
正規表現検証の制限を考慮して、基本的なチェックを行います。多くの場合、一般的なユーザー エラーを識別するだけで十分です。
[^@]+@[^@]+\.[^@]+
この正規表現は、@ 記号が 1 つと少なくとも 1 つ存在することを検証します。 @ の後ろ
コードでの正規表現の使用
上記の正規表現をコードに組み込むには、Python の re モジュールを利用します。
import re if not re.match(r"[^@]+@[^@]+\.[^@]+", email): # Handle invalid email address
文字を 2 回エスケープするのを避けるために、Python の生の文字列リテラルの先頭に r を付けて使用していることに注意してください。複雑な正規表現の場合は、最初にコンパイルすることを検討してください:
EMAIL_REGEX = re.compile(r"[^@]+@[^@]+\.[^@]+") if not EMAIL_REGEX.match(email): # Handle invalid email address
以上が正確な電子メール検証には正規表現で十分ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。