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

如何用Python正则表达式从Outlook收件人格式字符串中提取姓名

解决方案

你原来的思路是通过删除不需要的内容提取姓名,反而容易遗留多余符号,更简单的方案是直接用re.findall()匹配所有符合规则的姓名内容,一步拿到目标列表:

import re

mystring = 'To: John Lennon <John.Lennon@gmail.com> \x02; Paul McCartney <Paul.McCartney@yahoo.com> \x02;'
# 正则直接匹配所有姓名段,自动过滤前缀、分隔符、邮箱等无关内容
names = re.findall(r'(?:To:|; )\s*([^<]+?)\s*<', mystring)
print(names)

运行后直接输出你需要的结果:

['John Lennon', 'Paul McCartney']

原代码问题说明

  • 待替换规则没有覆盖分号;,导致替换后分号残留
  • 替换删除内容后原来内容之间的空格会保留,导致出现多余连续空格
  • 替换的实现逻辑本身容错率更低,更推荐直接提取你需要的目标内容,而非删除所有不需要的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:45:06