using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(?P<email>(?P<local>(?![\.\ ]+)(?=[^@]+)(?:(?:(?:[\#\!\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~\p{L}\p{N}])*(?:(?<=\.|^)(?:\""(?:[^\""]|(?<=\\)[\""\(\)\,\:\;\<\>\@\[\\\]])*\"")\.?)*(?:[\#\!\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~\p{L}\p{N}])*)))(?<!\.)\@(?P<host>(?:[\w\-]+?\.?)*|\[[\w\d\:]*\])(?![\.\ ]+))$";
string input = @"EMAIL
________
john.smith(comment)@example.com
(comment)john.smith@example.com
john.smith@(comment)example.com
john.smith@example.com(comment)
abc.""defghi"".xyz@example.com
""abcdefghixyz""@example.com
""John..Doe""@example.com
""test"".""test""@test.com
test.""test""@test.com
""test"".test@test.com
""\""@test.com
""\""\"".test@test.com
prettyandsimple@example.com
very.common@example.com
disposable.style.email.with+symbol@example.com
other.email-with-dash@example.com
x@example.com
""much.more unusual""@example.com
""very.unusual.@.unusual.com""@example.com
""very.(),:;<>[]\"".VERY.\""very@\\ \""very\"".unusual""@strange.example.com
example-indeed@strange-example.com
admin@mailserver1
#!$%&'*+-/=?^_`{}|~@example.org
""()<>[]:,;@\\\""!#$%&'-/=?^_`{}| ~.a""@example.org
"" ""@example.org
example@localhost
example@s.solutions
user@localserver
user@tt
user@[IPv6:2001:DB8::1]
________
@test.com
abc\""def\""ghi@example.com
abc""defghi""xyz@example.com
John..Doe@example.com
Abc.example.com
A@b@c@example.com
""\"""".""@test.com
test""@test.com
."".@test.com
a""b(c)d,e:f;g<h>i[j\k]l@example.com
just""not""right@example.com
this is""not\allowed@example.com
this\ still\""not\\allowed@example.com
john..doe@example.com
john.doe@example..com.somethingelse.something.more..more
john.doe@example.com
john.doe@example.com
.john.doe@something.com
johndoe.@something.com";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx