Regex 从文本中提取姓名和电子邮件地址

Regex 从文本中提取姓名和电子邮件地址,regex,Regex,我正在尝试从以下格式的电子邮件列表中提取姓名和电子邮件地址: ... Sent: 19 July 2019 14:25 To: John Dough <john@dough.zzz> ... 如何获得To:和Yo之间的字符串?假设名称部分不能包含字符,则可以使用2个捕获组。如果这些字符可以出现,则可以使用非贪婪量词。*?而不是[^]+ 假设名称部分不能包含字符,您可以使用2个捕获组。如果这些字符可以出现,您可以使用非贪婪量词。*?而不是[^]+ 你希望它如何区分Hello Worl

我正在尝试从以下格式的电子邮件列表中提取姓名和电子邮件地址:

...
Sent: 19 July 2019 14:25
To: John Dough <john@dough.zzz>
...

如何获得To:和Yo之间的字符串?假设名称部分不能包含字符,则可以使用2个捕获组。如果这些字符可以出现,则可以使用非贪婪量词。*?而不是[^]+


假设名称部分不能包含字符,您可以使用2个捕获组。如果这些字符可以出现,您可以使用非贪婪量词。*?而不是[^]+


你希望它如何区分Hello World和其他名称?约翰·史密斯叫什么名字?你对名字的定义是什么?你希望它如何区分Hello World和其他名字?约翰·史密斯叫什么名字?您对名称的定义是什么?如果在To:name Here之后缺少零件,则会出现问题@sanchez您可以排除匹配的换行符,我已更新了答案。如果在To:Name Here之后缺少零件,则会出现问题@sanchez你可以排除匹配的新行,我已经更新了答案。
/[a-z0-9_\-\+\.]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i
\bTo: ([^<>\r\n]+) <([a-z0-9_+.-]+@[a-z0-9-]+\.[a-z]{2,4}(?:\.[a-z]{2})?)>
\bTo: ([^<>\r\n]+) <([^\s@]+@[^\s@]+)>