python正则表达式[^@]+@[^@]+;\。(二),;查邮件?

python正则表达式[^@]+@[^@]+;\。(二),;查邮件?,python,regex,email,Python,Regex,Email,(来自) 我不完全明白 [^@]+@[^@]+\.[^@]+ 有人能详细解释一下吗?它查找1+非@字符,后跟@,后跟1+非@字符,后跟,后跟1+非@字符 ,并且^对字符类求反。在前面的字符中。最后,像\.一样转义,因为它的意思是“任意字符” 这意味着它不是检查电子邮件的最佳方法,因为有很多限制。例如,这将验证一封10000个字符长的电子邮件或一封具有类似!@的域的电子邮件。com 习惯使用诸如测试表达式和获得良好描述之类的工具。[^@]+-一次或多次检查非@符号的任何内容 @会清晰地搜索@符号

(来自)

我不完全明白

[^@]+@[^@]+\.[^@]+

有人能详细解释一下吗?

它查找1+非
@
字符,后跟
@
,后跟1+非
@
字符,后跟
,后跟1+非
@
字符

,并且
^
对字符类求反。在前面的字符中。最后,
\.
一样转义,因为它的意思是“任意字符”

这意味着它不是检查电子邮件的最佳方法,因为有很多限制。例如,这将验证一封10000个字符长的电子邮件或一封具有类似
!@的域的电子邮件。com


习惯使用诸如测试表达式和获得良好描述之类的工具。

[^@]+
-一次或多次检查非
@
符号的任何内容

@
会清晰地搜索
@
符号

\。
搜索
字符(必须转义,因为
搜索任何字符)


因此,它查找不包含
@
的任何字符串,后跟
@
,后跟不包含
@
的任何字符串,后跟
,后跟不包含
@
的任何字符串

正确的验证程序(第27页“6.地址规范”一节)比小型正则表达式要复杂一些

为了正确地做到这一点,需要语法(如上述rfc中所述),但正则表达式也可以工作。更确切地说,这样的正则表达式可以在模块中找到。我还没有在Python中尝试过这个正则表达式(但在Perl中效果很好)

AFAIK这是检查电子邮件地址是否为rfc822有效的实际方法。有关更多详细信息,请参见


但现在要回答您的问题,正则表达式的内容是“至少一个或多个非@,然后是a@,然后是至少一个或多个非@,然后是一个点,然后是至少一个或多个非@”。

在您的正则表达式中键入At,然后自己查看。投票结束。来自的回答可能也很有趣:如“常见验证任务”下所列,确定电子邮件地址是否有效的事实上的方法是发送电子邮件。如果电子邮件被反弹或邮件发送者报告错误,则无效。我想这是一个误解,我指的是rfc822中的有效有效(如上所述^^)是的,这是一种更准确的表达方式。