gpt4 book ai didi

javascript - 正则表达式仅匹配来自任何电子邮件地址的最终域名

转载 作者:行者123 更新时间:2023-11-29 19:10:54 24 4
gpt4 key购买 nike

我想匹配来自电子邮件地址的 父域名,该电子邮件地址可能有也可能没有子域。

到目前为止我已经试过了:

new RegExp(/.+@(:?.+\..+)/);

结果:

Input: abc@subdomain.maindomain.com
Output: ["abc@subdomain.domain.com", "subdomain.maindomain.com"]

Input: abc@maindomain.com
Output: ["abc@maindomain.com", "maindomain.com"]

我对第二场比赛(小组赛)感兴趣。
我的目标是,在这两种情况下,我希望组匹配并只给我 maindomain.com

注意:在否决票之前,请注意我既不能使用现有的答案,也不能匹配现有的问题。

最佳答案

您可以使用一个简单的正则表达式来仅获取域名的最后 2 部分是

/[^.]+\.[^.]$/

它匹配一系列非句点字符,后跟句点和另一个非句点序列,都在字符串的末尾。此正则表达式不能确保此域名出现在“@”之后。如果你想制作一个也能做到这一点的正则表达式,你可以使用带有“*?”的惰性匹配:

/@.*?([^.]+\.[^.])$/

但是,我认为尝试一次完成所有事情往往会使 make 正则表达式更加复杂且难以阅读。在这个问题中,我宁愿分两步做事:首先检查电子邮件中是否有“@”。然后你得到“@”后面的部分并将它传递给简单的正则表达式,它将提取域名。

分离事物的一个好处是一些改变更容易。例如,如果您想确保您的电子邮件中只有一个“@”,则可以在单独的步骤中轻松完成,但在“do everything”正则表达式中很难实现。

关于javascript - 正则表达式仅匹配来自任何电子邮件地址的最终域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924553/

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