原始来源:
RegexLib.com
修改后加入了两个新功能:
1,匹配类似 "lc <deerchao@xxx.com>" 这样的包含姓名的格式.
2,添加了四个命名组: name, email, user, domain. 这样可以方便取出相应的信息.
Regex re
=
new
Regex(
@"
^((?'name'.+?)/s*<)?(?'email'(?>[a-zA-Z/d!#$%&'*+/-/=?^_`{|}~]+/x20*|""(?'user'(?=[/x01-/x7f])[^""//]|//[/x01-/x7f])*""/x20*)*(?'angle'<))?(?'user'(?!/.)(?>/.?[a-zA-Z/d!#$%&'*+/-/=?^_`{|}~]+)+|""((?=[/x01-/x7f])[^""//]|//[/x01-/x7f])*"")@(?'domain'((?!-)[a-zA-Z/d/-]+(?<!-)/.)+[a-zA-Z]{2,}|/[(((?(?<!/[)/.)(25[0-5]|2[0-4]/d|[01]?/d?/d)){4}|[a-zA-Z/d/-]*[a-zA-Z/d]:((?=[/x01-/x7f])[^///[/]]|//[/x01-/x7f])+)/])(?'angle')(?(name)>)$
"
, RegexOptions.Multiline
|
RegexOptions.ExplicitCapture);
MatchCollection mc
=
re.Matches(
@"
l c <abc@example.com>
Abc@example.com
aBC@example.com
abc.123@example.com
"
);
foreach
(Match ma
in
mc)

{

}
修改后加入了两个新功能:
1,匹配类似 "lc <deerchao@xxx.com>" 这样的包含姓名的格式.
2,添加了四个命名组: name, email, user, domain. 这样可以方便取出相应的信息.












