gpt4 book ai didi

python - 文本包含电子邮件,但单词之间没有空格。如何提取电子邮件

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:08 25 4
gpt4 key购买 nike

我的文本仅包含电子邮件,但之间没有空格每封电子邮件

示例:email1@file1.comemail2@file1.comemail3@dom1.net

我已经应用了re.findall(r'[\w\.-]+@[\w\.-]+', str(line)),这就是我得到的

email1@file1.comemail
2@file1.comemail
3@dom1.net

热门顶级域名为.com.net.info.org。因此,如果我在 @[\w\.-]+ 之后找到其中之一,那么我将在该行中的 tld 后面引入一个空格,然后提取电子邮件。

但如何检查我有 .com 或 .net 或 .info ....

最佳答案

一个选项(如果考虑到很多变体,例如 .com .net 等,这可能会变得相当麻烦)可能是使用非贪婪的 +? 匹配并列出所有您允许使用 alternation 的选项.

[\w.-]+?@[\w.-]+?\.(?:com|net)

Regex demo | Python demo

注意,重复字符类 [\w.-]+ 也将允许例如 .-.-.@.-.-.. com

例如

import re
s = "email1@file1.comemail2@file1.comemail3@dom1.net"
regex = r"[\w.-]+?@[\w.-]+?\.(?:com|net)"
res = re.findall(regex, s)
print(res)

结果

['email1@file1.com', 'email2@file1.com', 'email3@dom1.net']

关于python - 文本包含电子邮件,但单词之间没有空格。如何提取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56968710/

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