この電子メール検証で何をしているかにもよると思いますが、フォーム入力の目的で、オンラインの ASP.NET 正規表現バリデーターで何年もこれを行ってきました。
数か月間、これを処理するためのかなりクールな正規表現があると思いました。ネットで見つけたのですが、人気商品のようです。ただし、フォームの検証で電子メールアドレスが気に入らなかったという申請書に記入しようとしている顧客から電話を受けることが何度かありました。そして、何人の人が同じ問題を抱えていたのに電話しなかったかを誰が知っていますか.
厳しすぎるよりも、貪欲さの側で過ちを犯した方が良いという教訓を私は難しい方法で学びました. 言い換えれば、電子メール アドレスを有効 (および無効) にするものを定義するルールが非常に多いため、すべてのベースをカバーする自由形式の正規表現を定義するだけです。一部の無効な電子メール アドレスにも一致する可能性がありますが、私の目的では、それほど大きな問題ではありません。その上、正直なところ、ほとんどの場合、ユーザーが自分のメールアドレスを台無しにしている場合、それはスペルミスであり、いずれにしても正規表現では検出されません。
だからここに私が今使っているものがあります:
^[^<>\s\@]+(\@[\w\-]+(\.[\w\-]+)+)$
そして、これをテストする実際の例を次に示します。
http://regexhero.net/tester/?id=b90d359f-0dda-4b2a-a9b7-286fc513cf40
これは、連続したドット、ダッシュなどに引き続き一致するため、これはあなたの主な懸念には対処しません。また、正直なところわからないため、これがすべての有効な電子メールアドレスに一致するとはまだ主張できません. しかし、私は過去 3 年間、25,000 人以上のユーザーと一緒に使用しており、苦情は 1 つもありませんでした。