Есть ли способ извлечь все адреса электронной почты из обычного текста с помощью C#.извлечь весь адрес электронной почты из текста с помощью C#
Например
мой адрес электронной почты [email protected] и его электронная почта [email protected]
должен вернуть
[email protected], 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;
}
Снимите^с начала регулярных выражений и $ с конца. Есть ли другая цель, кроме спама для этой деятельности? – Lazarus
@Lazarus это не для рассылки спама, а для веб-сканирования по общему адресу, чтобы можно было создать базу данных контактов! удаление^и $ работает, но пришлось добавить некоторые хитрости, чтобы извлечь из него электронные письма. Я отправил ответ на этот вопрос. – Thunder
попробуйте этот http://stackoverflow.com/a/26274085/1604425 намного лучше, чем сложный regx – dhiraj