Có cách nào để trích xuất tất cả địa chỉ email từ văn bản thuần túy bằng C# hay không.trích xuất tất cả địa chỉ email từ văn bản bằng cách sử dụng C#
Ví dụ
địa chỉ email của tôi là [email protected] và email của mình là [email protected]
nên trở
[email protected], mrgar @ yahoo.com
Tôi đã thử những điều sau đây nhưng nó chỉ phù hợp với các email hoàn hảo.
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;
}
Tháo^ngay từ đầu của regex và $ từ kết thúc. Có mục đích nào khác ngoài việc gửi spam cho hoạt động này không? – Lazarus
@ Lazarus của nó không phải để gửi spam nhưng để thu thập thông tin trên web địa chỉ để cơ sở dữ liệu liên hệ có thể được thực hiện! loại bỏ^và $ hoạt động nhưng phải thêm một số chỉnh sửa để trích xuất các email từ nó. Tôi đã đăng câu trả lời theo đây. – Thunder
thử http://stackoverflow.com/a/26274085/1604425 này tốt hơn nhiều so với regx phức tạp – dhiraj