次の正規表現を使用して、Rails アプリのメール DB でメールを検証しています。
/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
それはちょっと動作しますが、この種のエラーがある無効なメールが残ります:
name@domain..com
それを避けるためにこの正規表現を書き直すにはどうすればよいですか、または有効な電子メールアドレスのみを残す必要がある電子メールリストをクリーンアップするのに最適な正規表現はどれですか? リストをクリーンアップするために、次のような方法を使用しています。
def mailSweep
mails = Email.all.lazy
for address in mails do
if address.email.to_s =~ /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
puts address.email.to_s + " " + "it's valid"
else
puts address.email.to_s + " " + "it's invalid, destroying..."
address.destroy
end
end
end