using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @/
(([^<>()\[\]\.,;:\s@\""]+(\.[^<>()\[\]\.,;:\s@\""]+)*)|(\"".+\""))@(([^<>()\.,;\s@\""]+\.{0,1})+([^<>()\.,;:\s@\""]{2,}|[\d\.]+))
/;
string input = @"- VALID MAILS
Abc@example.com
Abc@example.com.
Abc@10.42.0.1
user@localserver
Abc.123@example.com
user+mailbox/department=shipping@example.com
""very.(),:;<>[]\"".VERY.\""very@\\ \""very\"".unusual""@strange.example.com
!#$%&'*+-/=?^_`.{|}~@example.com
""()<>[]:,;@\\\""!#$%&'-/=?^_`{}| ~.a""@example.org
""Abc@def""@example.com
""Fred Bloggs""@example.com
""Joe.\\Blow""@example.com
Loïc.Accentué@voilà.fr
"" ""@example.org
user@[IPv6:2001:DB8::1]
- INVALID MAILS
Abc.example.com
A@b@c@example.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";
foreach (Match m in Regex.Matches(input, pattern))
{
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