私は次の式を使用して電子メールアドレスを検証します(インターネットのどこかで見つけたので、完全に間違っていても非難しないでください:-)):
^((?:(?:(?:[a-zA-Z0-9 _] [.- +]?)*)[a-zA-Z0-9 _] [.- +]?)*)\ @( (?:(?:(?:[a-zA-Z0-9] [.-_]?){0,62})[a-zA-Z0-9])+)。([a-zA- Z0-9] {2,6})$
ほとんどの場合は正常に機能しますが、何らかの理由で電子メールアドレスのどこかにスペースを追加すると、IsMatchメソッドが非常に遅くなります。メールアドレスのスペースの位置によって計算時間が長くなるようです。次の無効な電子メールアドレスは、問題を示しています。
test @ aweb serversomewhereintheworld.com(遅い)
test @ awebserversomewhere intheworld.com(非常に遅い)
メールアドレスの検証に使用される正規表現の何が問題になっていますか?