"的字符串-6ren"> "的字符串-我有一个方法可以接收以下格式之一的联系人: 1 - “email@domain.com” 2 - “名称”或“名称”(空格可以存在) 如果是格式(1)我什么都不做。如果是 (2),我需要解析姓名和电子-6ren">
gpt4 book ai didi

c# - 如何解析格式为 "Name "的字符串

转载 作者:太空狗 更新时间:2023-10-29 22:14:20 26 4
gpt4 key购买 nike

我有一个方法可以接收以下格式之一的联系人:

1 - “email@domain.com”

2 - “名称 ”或“名称 ”(空格可以存在)

如果是格式(1)我什么都不做。如果是 (2),我需要解析姓名和电子邮件。

我永远不知道我会收到哪种格式的电子邮件。但它将是两者之一。

我该怎么做?

最佳答案

实际上已经有一个名为 MailAddress 的 .NET 类可以很简单地为您做到这一点。
更新:它不仅可以获取显示名称,还可以获取电子邮件地址、用户名和主机。

首先包括using System.Net.Mail然后您可以通过以下方式获取信息:

MailAddress email = new MailAddress("Johnny <johnny@example.com>");
string displayName = email.DisplayName;
string address = email.Address;
string user = email.User;
string host = email.Host;

这将适用于您描述的两个场景 "Name <email@domain.com>""Name<email@domain.com>"既工作又给你Name .我继续创建了一个可以找到的测试 here这将为您提供示例输出:

'email@domain.com' =
DisplayName = ''
Address = 'email@domain.com'
User = 'email'
Host = 'domain.com'
'Name<email@domain.com>' =
DisplayName = 'Name'
Address = 'email@domain.com'
User = 'email'
Host = 'domain.com'
'Name <email@domain.com>' =
DisplayName = 'Name'
Address = 'email@domain.com'
User = 'email'
Host = 'domain.com'

关于c# - 如何解析格式为 "Name <Email>"的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12442635/

26 4 0