using System; using System.Text.RegularExpressions; public class Test { public static void Main() { var input = "\"one@tw;,.'o\"@hotmail.com;\"some;thing\"@example.com;hello@world;\"my\\\"quote\"@my.com;quick\\\"brown@fox.jumps"; var mm = Regex.Matches(input, "((?:(?:[^@\"]|(?<=\\\\)\")+|\"([^\"]|(?<=\\\\)\")*\")@[^;]+)(?:;|$)"); foreach (Match m in mm) { Console.WriteLine(m.Groups[1].Value); } } }