You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分包含多个电子邮箱地址的字符串?

拆分拼接的电子邮箱字符串为单个邮箱地址

你当前用re.split("(.com)", emails)的方式会将邮箱拆分为前缀和.com片段,还会产生空字符串,无法得到完整邮箱。以下两种方法可以解决问题:

方法一:直接匹配完整邮箱(推荐)

不用拆分,直接用正则匹配所有符合格式的完整邮箱:

import re

emails = "person1@gmail.comperson2@gmail.comperson3@gmail.com"
full_emails = re.findall(r'[\w.-]+@[\w.-]+\.com', emails)
print(full_emails)
# 输出: ["person1@gmail.com", "person2@gmail.com", "person3@gmail.com"]

这个正则能匹配包含字母、数字、下划线、点、连字符的用户名和域名,精准提取每个以.com结尾的完整邮箱。

方法二:用正向断言拆分

如果坚持要用re.split,可以通过正向断言定位两个邮箱的分隔位置,避免拆分邮箱本身:

import re

emails = "person1@gmail.comperson2@gmail.comperson3@gmail.com"
full_emails = re.split(r'(?<=\.com)(?=[a-zA-Z0-9])', emails)
print(full_emails)
# 输出: ["person1@gmail.com", "person2@gmail.com", "person3@gmail.com"]
  • (?<=\.com):后顾断言,确保拆分位置前是.com
  • (?=[a-zA-Z0-9]):先行断言,确保拆分位置后是邮箱用户名的起始字符(字母/数字)

这样拆分的位置恰好处于两个邮箱的衔接处,不会破坏单个邮箱的完整性。

内容的提问来源于stack exchange,提问作者Bera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:45:02