【发布时间】:2015-06-10 14:17:46
【问题描述】:
我正在使用以下 python 正则表达式代码来分析电子邮件收件人字段中的值:
import re
PATTERN = re.compile(r'''((?:[^(;|,)"']|"[^"]*"|'[^']*')+)''')
list = PATTERN.split(raw)[1::2]
列表应输出每个收件人的姓名和地址,基于“,”或“;”作为分隔符。如果这些值在引号内,它们将被忽略,这是名称的一部分,通常是:“姓氏,名字”
大多数情况下,这很有效,但是在以下情况下,我会遇到意外行为:
"Some Name | Company Name" <name@example.com>
在这种情况下,它在“|”上进行拆分特点。即使当我在正则表达式测试器网站上检查模式时,它也会将名称和地址作为一个整体进行选择。我做错了什么?
示例输入是:
"Some Name | Company Name" <name1@example.com>, "Some Other Name | Company Name" <name2@example.com>, "Last Name, First Name" <name3@example.com>
【问题讨论】:
-
它不会在任何地方分裂。给我一个输出
['"Some Name | Company Name" <name@example.com>'] -
没错,通常一个字符串中会有多个。我想把他们挑出来。但是,如果我在我的谷歌应用引擎上运行它,它会在 |