Есть ли способ извлечь все адреса электронной почты из простого текста, используя C #.
Например
мой адрес электронной почты mrrame@gmail.com, а его адрес электронной почты mrgar@yahoo.com
должен вернуть
mrrame@gmail.com, mrgar@yahoo.com
Я пробовал следующее, но оно соответствует только идеальным электронным письмам.
public const string MatchEmailPattern =
@"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
+ @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\."
+ @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
+ @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$";
public static bool IsEmail(string email)
{
if (email != null) return Regex.IsMatch(email, MatchEmailPattern);
else return false;
}