如何从Golang的长字符串中只提取电子邮件地址?例如:
"a bunch of irrelevant text fjewiwofjfjvnvkdlslsosiejwoqlwpwpwo
mail=jim.halpert@gmail.com,ou=f,c=US
mail=apple.pie@gmail.com,ou=f,c=US
mail=hello.world@gmail.com,ou=f,c=US
mail=alex.alex@gmail.com,ou=f,c=US
mail=bob.jim@gmail.com,ou=people,ou=f,c=US
mail=arnold.schwarzenegger@gmail.com,ou=f,c=US"
这将返回所有电子邮件的列表:【吉姆.哈尔伯特@ gmail.com,苹果.派@ gmail.com,等等......】
每个电子邮件地址都以“mail=”开始,以逗号“,"结尾。
4条答案
按热度按时间cidc1ykv1#
为此,您需要将long go字符串分解为您需要的部分。您可以使用正则表达式进行过滤和搜索,以匹配您在上面看到的电子邮件模式。
下面是一段代码,它使用正则表达式首先获取包含
"mail="
的部分,然后进一步格式化电子邮件,删除尾随的,
mnemlml82#
虽然我同意用户datenwolf的评论,但这里是另一个不涉及正则表达式的版本。
它还处理更复杂的电子邮件格式,包括本地部分中的逗号。使用regexp不易实现的东西。
请参阅https://stackoverflow.com/a/2049510/11892070
7fyelxc53#
您可以使用此软件包来执行以下操作:
https://github.com/hamidteimouri/htutils/blob/main/htregex/htregex.go
64jmpszr4#
您可以使用golang原始包是regexp.Compile或regexp.MustCompile