【发布时间】:2018-05-13 18:51:21
【问题描述】:
我正在尝试编写一个正则表达式,它将从电子邮件“发件人”标题中提取名称。我有一个适用于大多数电子邮件客户端的正则表达式,但我只是注意到另一个电子邮件客户端发送的标题略有不同,从而破坏了正则表达式。我最初的想法是提取双引号或单引号内的所有内容,但这不再起作用,因为它不必被引用。
我使用正则表达式([""'])(?:(?=(\\?))\2.)*?\1 来提取引号之间的文本。然而,现在我认为最好的做法是删除尖括号内的文本,只留下没有引号的“测试人员”,最好不要在逗号后出现第二次,尽管这不是必需的。
下面是我试图从中提取名称的两个字符串:
Testing Person <testing.person@example.com>,Testing Person <testing.person@example.com>
"Testing Person" <testing.person@example.com>,"Testing Person" <testing.person@example.com>
我尝试使用它,但我似乎无法弄清楚如何告诉它如何只捕获字符串的前半部分直到尖括号(?!([^<|>])).*
【问题讨论】:
-
[^<|>]是什么意思?
标签: regex