gpt4 book ai didi

regex - 电子邮件子域匹配的正则表达式

转载 作者:行者123 更新时间:2023-11-29 11:52:49 25 4
gpt4 key购买 nike

有人知道只匹配包含子域的电子邮件的正则表达式吗?

例如,

name@subdomain.domain.comname@subdomain.domain.edu.au

最好在 中使用.

我试过这个:

^[-+.0-9A-Z_a-z]+@[-+.0-9A-Z_a-z]+\.[A-Za-z]{2,4}$

但它也匹配name@test.org

最佳答案

不要,反正不是为了验证目的。它只会以痛苦告终。

用于验证电子邮件地址的唯一合理的正则表达式是查找“@”符号和至少一个句点的正则表达式。没有其他的;随着 IDNs 的出现,甚至字母数字也毫无意义.

至少您需要准确定义“子域”的含义。一切都是一个子域。什么的子域?排除什么,包括什么?

您如何定义“子域”与“顶级”?您是指“a domain that is open to public registration 的子域”吗? “对公共(public)注册开放的域的子域的子域”?在什么级别的授权下,它会成为您目的的子域?

对于政府域名,可以注册域名的“公众”非常有限,而且子域名的子域名是常态?你想搭配什么?

你将如何应对 new gTLDs以及列表会随时间变化的事实?或者添加/删除 ccTLD?如果 ccTLD 改变其政策,开始出售直系后代域名(例如“myname.au”)而不是仅出售特定的子注册机构(例如“myname.org.au”)怎么办?您会动态更新您的正则表达式吗?如果是这样,您将如何处理过去有效但不再有效的地址,反之亦然?

我遇到了愚蠢的电子邮件验证系统,它甚至拒绝了我的主要电子邮件地址 ringerc@ringerc.id.au(当它已经遍布整个“网络”时,没有必要修改它),尽管它是一个完全有效的 .id.au 域。

请不要创建另一个。如果您的意图不是验证,那很好,但是不要尝试使用正则表达式来验证电子邮件地址域。

关于regex - 电子邮件子域匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com