我必须解析一个文本文件,其行如下:
ToList=abc@gmail.com;xyz@gmail.com;dom@yahoo.in; iter@outlook.com
每当在文本文件中遇到"ToList="
时,应该提取该行中的不同电子邮件ID,该邮件ID由";"
分隔并放入Outlook邮件的Recepient列表中。
答案 0 :(得分:1)
这样的事情应该有效
string original = "abc@gmail.com;xyz@gmail.com"
string[] splitString = original.Split(';');
答案 1 :(得分:1)
您可以使用split方法实现此目的:
string abc="abc;paw;mnh";
string[] extracted = abc.Split(';');
for(int i=0;i<extracted.Length;i++)
{
Console.WriteLine(extracted[i]);
}
答案 2 :(得分:0)
您可以使用Split方法两次,如下所示:
string data = ".........";
string [] myRecipients = data.Split(new string[] { "ToList=" }, StringSplitOptions.None);
foreach (string entry in myRecipients )
{
string[] mails = entry.Split(';');
}
答案 3 :(得分:0)
如果您有文本文件,我建议使用 Linq 过滤掉地址并解析它们:
using System.IO;
using System.Linq;
...
string[] addresses = File
.ReadLines(@"C:\MyFile.txt")
.Where(line => line.StartsWith("ToList=")) // addresses only
.SelectMany(line => line.Split(';')) // flatten the collection
.Select(item => item.Trim()) // let's trim spaces
.Distinct() // we don't want repeats
.ToArray();
最后,要将地址集合(数组)收集到一个字符串中,请使用string.Join
:
string address = string.Join(";", addresses);
答案 4 :(得分:0)
正则表达式有时会派上用场
string input = "ToList=abc@gmail.com;xyz@gmail.com;dom@yahoo.in; iter@outlook.com";
string pattern = @"\w+[@]\w+[.]\w+";
var emails = Regex.Matches(input, pattern).Cast<Match>().Select(m => m.Value);