gpt4 book ai didi

go - 解析包含名称的完整电子邮件地址

转载 作者:IT王子 更新时间:2023-10-29 01:49:10 26 4
gpt4 key购买 nike

我需要从电子邮件地址获取域,问题是同一电子邮件包含名称 name < email > ,我当前的代码是:

var (
ErrBadFormat = errors.New("invalid format")
emailRegexp = regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
)

func GetFromDomain(email string) string {
if !emailRegexp.MatchString(email) {
fmt.Println("Error %FROMDOMAIN ", email)
return "localhost"
}

i := strings.LastIndexByte(email, '@')
return email[i+1:]
}

执行此操作的最佳做​​法是什么?当电子邮件包含名称时,我使用 LastIndexByte 的方法返回错误。我该如何解决这个问题?

最佳答案

最好的办法是使用合适的电子邮件解析库,例如标准库的 mail.ParseAddress方法。

从那里,您可以轻松地从地址中提取域名,方法是在 @ 上拆分——但要小心!在电子邮件地址的用户名部分(即 "foo@bar"@example.com)中使用引号或转义的 @ 实际上是合法的,因此您必须拆分最后 @

关于go - 解析包含名称的完整电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335070/

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