我在拔出电子邮件域时遇到了麻烦。 我试过使用
1 | u, _ := url.Parse(email) |
和标准库中的其他解析,但似乎没有解析的内容:user@gmail.com分成单独的部分。
我也尝试过net.SplitHostPort,但是没有运气。
我不想创建一个函数,该函数在可能的情况下获取len和@符号后的子字符串。
有人有任何想法吗?
谢谢!
-
电子邮件地址既不是URL,也不是主机+端口。 为什么不只拆分
@ 字符? - golang.org/pkg/net/mail/#example_ParseAddress
- @MohamedNuur我看到了,但是希望在此示例中拆分e.Address
- 我可以在@JimB上拆分@并仅获取剩余的字符串吗? 我的计划现在是@的len,然后发送email [length:full_length]这将是几行,如果有更好的解决方案,我就不想这样做
-
@ jj1111就像@JimB所说的那样,只需使自己的函数按
@ 字符分割即可。 我不认为这里有任何图书馆,因为人们通常不解析电子邮件。
这是我从golang文档中炮制的一个示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package main import ( "fmt" "strings" ) func main() { email :="foo@bar.com" components := strings.Split(email,"@") username, domain := components[0], components[1] fmt.Printf("Username: %s, Domain: %s\ ", username, domain) } |
- Nurr您可以添加到所使用文档的链接吗?
- 我非常怀疑您是否会在现实生活中遇到这种情况,但是按照笔者的说法,这个答案是不正确的。 有效电子邮件地址的规范允许在电子邮件地址中使用多个" @"符号。 您要使用最后一个而不是第一个作为域部分。 stackoverflow.com/a/12355882/329700
-
看一下
netmail 软件包,它显示了将电子邮件分为几部分的正确方法