如何在C#中使用正则表达式拆分收件人姓名和电子邮件地址?
我有一个字符串数组,其中包含电子邮件收件人的姓名和电子邮件。要发送相关电子邮件,我需要使用正则表达式拆分值。我不熟悉这个正则表达式区域: 这是字符串数组如何在C#中使用正则表达式拆分收件人姓名和电子邮件地址?,c#,regex,C#,Regex,我有一个字符串数组,其中包含电子邮件收件人的姓名和电子邮件。要发送相关电子邮件,我需要使用正则表达式拆分值。我不熟悉这个正则表达式区域: 这是字符串数组 [ "Jason D Silva <ejd@yopmail.com>", "Aruna Nishantha <arunan@yopmail.com>", "Dan Carter <dancarter@yopmail.com>" ] [ “杰森·D·席尔瓦”, “Aruna Nishantha”, “
[
"Jason D Silva <ejd@yopmail.com>",
"Aruna Nishantha <arunan@yopmail.com>",
"Dan Carter <dancarter@yopmail.com>"
]
[
“杰森·D·席尔瓦”,
“Aruna Nishantha”,
“丹·卡特”
]
我想将值拆分为名称和电子邮件。正确完成拆分后,我将按如下方式将其插入列表:
List<KeyValuePair<string, string>> recipientList = new List<KeyValuePair<string, string>>();
foreach (var item in recipients)
{
// Regex pattern
if (true)
{
//add to recipientList
}
}
List recipientList=new List();
foreach(收件人中的变量项)
{
//正则表达式模式
如果(真)
{
//添加到收件人列表
}
}
有关正则表达式模式的任何帮助,请?您不需要正则表达式,您可以使用
String.Split
:
string[] myArray = // ...
foreach(string kv in myArray)
{
string[] values = kv.Split(" <");
// to eliminate the terminating ("noisy" > at the end
values[1] = values[1].Substring(0, values[1].IndexOf('>');
}
string[]myArray=/。。。
foreach(myArray中的串kv)
{
string[]values=kv.Split(“您可以使用以下正则表达式:
^(?<Name>.*)\s\<(?<Email>.*)\>$
^(?.*)\s\$
使用此选项,您可以通过以下方式检索名称和电子邮件地址:
var match = Regex.Match("Jason D Silva <ejd@yopmail.com>", @"^(?<Name>.*)\s\<(?<Email>.*)\>$");
var email = match.Groups["Email"].Value;
var name = match.Groups["Name"].Value;
var match=Regex.match(“Jason D Silva”,@“^(?.*)\s\$”;
var email=match.Groups[“email”].Value;
var name=match.Groups[“name”].Value;
使用String.Substring
方法的正确实现
int start, end;
String[] a = {"Jason D Silva <ejd@yopmail.com>","Aruna Nishantha <arunan@yopmail.com>","Dan Carter <dancarter@yopmail.com>" };
foreach (String item in a)
{
Console.WriteLine(item);
end = item.IndexOf('<');
Console.WriteLine(" \t Name : " + item.Substring(0, end));
start = item.IndexOf('<');
end = item.IndexOf('>');
Console.WriteLine(" \t email : " + item.Substring(start + 1, end - (start + 1)));
}
int开始,结束;
字符串[]a={“Jason D Silva”、“Aruna Nishantha”、“Dan Carter”};
foreach(a中的字符串项)
{
控制台写入线(项目);
end=item.IndexOf('第二个数组项(电子邮件)的末尾将包含一个嘈杂的
。你想在输出中使用
字符吗?@Avinash不需要。谢谢这个实现真的很有效。谢谢!!.Bt我正在寻找一个正则表达式模式。.投票赞成
"Jason D Silva <ejd@yopmail.com>"
Name : Jason D Silva
email : ejd@yopmail.com
"Aruna Nishantha <arunan@yopmail.com>"
Name : Aruna Nishantha
email : arunan@yopmail.com
"Dan Carter <dancarter@yopmail.com>"
Name : Dan Carter
email : dancarter@yopmail.com