1、"sender name" <sender@domain.com>
2、sender name <sender@domain.com>
3、sender@domain.com
我想匹配得到两样东西:
将前面的sender name存入<fromname>,并且要去掉双引号,如果没有就返回空字符串;
将后面的邮件地址存入<from>,并且要去掉尖括号,如果没有就返回空字符串。
1 try
2
3
4 using System;
5 using System.Text.RegularExpressions;
6
7
8 string[] slist = {"\"sender name\" <sender@domain.com>",
9 "sender name <sender@domain.com>",
10 "sender@domain.com"
11 };
12
13 Regex r = new Regex(@"""?(?<fromname>.*?)""?\s*[<]?(?<from>[^@\s]+\@[^@\s>]+)[>]?$");
14
15 foreach (string s in slist)
16 {
17 Match m = r.Match(s);
18 Console.WriteLine("{0} matches? {1}", s, m.Success);
19 if (m.Success)
20 {
21 Console.WriteLine("\tsender:***{0}***\temail:***{1}***", m.Groups["fromname"].Value,
22
23 m.Groups["from"].Value);
24 }
25 }
26
2
3
4 using System;
5 using System.Text.RegularExpressions;
6
7
8 string[] slist = {"\"sender name\" <sender@domain.com>",
9 "sender name <sender@domain.com>",
10 "sender@domain.com"
11 };
12
13 Regex r = new Regex(@"""?(?<fromname>.*?)""?\s*[<]?(?<from>[^@\s]+\@[^@\s>]+)[>]?$");
14
15 foreach (string s in slist)
16 {
17 Match m = r.Match(s);
18 Console.WriteLine("{0} matches? {1}", s, m.Success);
19 if (m.Success)
20 {
21 Console.WriteLine("\tsender:***{0}***\temail:***{1}***", m.Groups["fromname"].Value,
22
23 m.Groups["from"].Value);
24 }
25 }
26
1 try
2
3
4 using System;
5 using System.Text.RegularExpressions;
6
7
8 string[] slist = {"\"sender name\" <sender@domain.com>",
9 "sender name <sender@domain.com>",
10 "sender@domain.com"
11 };
12
13 Regex r = new Regex(@"""?(?<fromname>.*?)""?\s*[<]?(?<from>[^@\s]+\@[^@\s>]+)[>]?$");
14
15 foreach (string s in slist)
16 {
17 Match m = r.Match(s);
18 Console.WriteLine("{0} matches? {1}", s, m.Success);
19 if (m.Success)
20 {
21 Console.WriteLine("\tsender:***{0}***\temail:***{1}***", m.Groups["fromname"].Value,
22
23 m.Groups["from"].Value);
24 }
25 }
26
27
2
3
4 using System;
5 using System.Text.RegularExpressions;
6
7
8 string[] slist = {"\"sender name\" <sender@domain.com>",
9 "sender name <sender@domain.com>",
10 "sender@domain.com"
11 };
12
13 Regex r = new Regex(@"""?(?<fromname>.*?)""?\s*[<]?(?<from>[^@\s]+\@[^@\s>]+)[>]?$");
14
15 foreach (string s in slist)
16 {
17 Match m = r.Match(s);
18 Console.WriteLine("{0} matches? {1}", s, m.Success);
19 if (m.Success)
20 {
21 Console.WriteLine("\tsender:***{0}***\temail:***{1}***", m.Groups["fromname"].Value,
22
23 m.Groups["from"].Value);
24 }
25 }
26
27