在python中验证电子邮件格式

在python中验证电子邮件格式,python,email,loops,for-loop,Python,Email,Loops,For Loop,我正在尝试编写一个程序,检查电子邮件是否为有效形式。有效形式是字母或数字字符的任意组合,后跟@符号,然后是字母字符的任意组合。我甚至不想拥有像“gmail.com”这样的域名,它可以是new@gmail例如我试过很多东西,但似乎都不明白 email = "XXX@XXX" x = len(email) for i in range(x): if email[i][0] == "@": return False elif email[

我正在尝试编写一个程序,检查电子邮件是否为有效形式。有效形式是字母或数字字符的任意组合,后跟
@
符号,然后是字母字符的任意组合。我甚至不想拥有像“gmail.com”这样的域名,它可以是new@gmail例如我试过很多东西,但似乎都不明白

email = "XXX@XXX"
x = len(email)
    for i in range(x):
        if email[i][0] == "@":
            return False
        elif email[i][-1] == "@":
            return False
        elif not email[i].isalnum():
            return False
    return True

我想这就是你要问的

你可以使用这个软件包:


我会用正则表达式。比如:

r.compile('\w*@\w*.com')

这是我在生产系统中使用的代码
如果他的验证只是在电子邮件中,那就太过分了+1所有这些都将排除有效的电子邮件。。。电子邮件的正则表达式糟透了。。。(虽然我没有投反对票)看起来他想确保两边至少有一个字符不是“@”。可能会添加
和电子邮件。startswith('@')/endswith('@')
?此验证过于宽松。因此:
@
有效…?
在电子邮件[:-1]
中如何在电子邮件[:-1]中在上下文中使用return'@?是否允许
-
+
?唯一的说明是使用“@”字符在本地部分和域部分之间。所以是的,我允许这些。
return '@' in email[:-1]
from validate_email import validate_email
is_valid = validate_email('example@example.com')
import re

email_format: str = r"(^[a-zA-Z0-9'_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
email: str = "test@gmail.com"


if re.match(email_format, email, re.IGNORECASE):
    print("valid email!")
else:
    print("invalid email!")