以下正则表达式模式(用于 PHP)旨在验证任何电子邮件地址:
^[\w.-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$
它说:“匹配至少一个(或多个)大写和/或小写字母,和/或句点,下划线和/或破折号,后跟一个且仅一个@,后跟至少一个(或多个)大写和/或小写字母,和/或句点,和/或下划线后跟一个且只有一个句点,后跟两到六个大写和/或小写字母。
这似乎与我能想到的任何电子邮件地址相匹配。尽管如此,这种正确的感觉可能具有欺骗性。有知识的人能否指出我不知道的这种模式中的一个明显或不那么明显的漏洞,这会使其无法按照预期的方式执行电子邮件验证?
(为了预见可能的响应,我知道 filter_var() 函数提供了更强大的解决方案,但在这种情况下我对正则表达式特别感兴趣。)
注意:这是一个关于正则表达式的 PHP 风格的理论问题,而不是关于验证电子邮件的实际问题。在这种情况下,我只想确定正则表达式合理可行的限制。
先感谢您!