首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

将一个字符串解析成MailAddress,有什么比较好的步骤没有

2013-06-19 
将一个字符串解析成MailAddress,有什么比较好的方法没有?有一个字符串address的值为张三 zs@test.com

将一个字符串解析成MailAddress,有什么比较好的方法没有?
有一个字符串address的值为
"张三" <zs@test.com>; "ZhangYue" <zhangyue@csdn.com>; "李四" <lisi@yoooo.com>; "小二" <xr2013@bbbb.com>
有没有什么比较简单的方法,将这个字符串地址清单解析生成MailAddressCollection
[解决办法]


            string str = @"""张三"" <zs@test.com>; ""ZhangYue"" <zhangyue@csdn.com>; ""李四"" <lisi@yoooo.com>; ""小二"" <xr2013@bbbb.com>";
            string strmatch = @"""([^""]+)""[^<>]+<([^<>]+)>";
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(strmatch);
            System.Text.RegularExpressions.MatchCollection mc = reg.Matches(str);
            foreach (System.Text.RegularExpressions.Match mm in mc)
            {
                MessageBox.Show(mm.Groups[1].Value);
                MessageBox.Show(mm.Groups[2].Value);
            }

[解决办法]
string tempStr = File.ReadAllText(@"C:\Users\myx\Desktop\Test.txt", Encoding.GetEncoding("GB2312"));//读取txt

                MailAddressCollection mac = new MailAddressCollection();
               var _list = Regex.Matches(tempStr, @"(?i)(['""]?)(?<Name>[^'""]*?)\1\s+?\<(?<Adress>[^<>;]+)\>").Cast<Match>().Select(a => new MailAddress(a.Groups["Adress"].Value,a.Groups["Name"].Value));
               _list.ToList().ForEach(x=>mac.Add(x));

热点排行