validar regular para expresion electronico correo como c# regex email-validation

expresion - La mejor expresión regular para la validación de correo electrónico en C#



expresion regular para correo electronico (4)

Dirección de correo electrónico: RFC 2822 Format
Coincide con una dirección de correo electrónico normal. No verifica el dominio de nivel superior.
Requiere que la opción "distinga entre mayúsculas y minúsculas" esté activada.

[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:/.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

Uso:

bool isEmail = Regex.IsMatch(emailString, @"/A(?:[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:/.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)/Z", RegexOptions.IgnoreCase);

He visto una multitud de expresiones regulares para diferentes lenguajes de programación que pretenden validar direcciones de correo electrónico. He visto muchos comentarios que dicen que las expresiones en cuestión no funcionan para ciertos casos y que son demasiado estrictas o demasiado permisivas. Lo que busco es una expresión regular que pueda usar en mi código C # que sea definitiva.

Lo mejor que he encontrado es esto

^([/w/./-]+)@([/w/-]+)((/.(/w){2,3})+)$

¿Hay algo mejor?


Esta función C # usa una expresión regular para evaluar si la dirección de correo electrónico pasada es sintácticamente válida o no.

public static bool isValidEmail(string inputEmail) { string strRegex = @"^([a-zA-Z0-9_/-/.]+)@((/[[0-9]{1,3}" + @"/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([a-zA-Z0-9/-]+/" + @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$"; Regex re = new Regex(strRegex); if (re.IsMatch(inputEmail)) return (true); else return (false); }



Validación de correo electrónico Regex

^ [a-z0-9] [- a-z0-9 ._] + @ ([- a-z0-9] +.) + [az] {2,5} $

O

^ [a-z0-9] [- a-z0-9 ._] + @ ([- a-z0-9] + [.]) + [az] {2,5} $

Enlace demo:

https://regex101.com/r/kN4nJ0/53