2016-04-18 9 views
0

Ich habe den folgenden Code und ich möchte es überprüfen, ob eine E-Mail-Adresse in einem akzeptablen Format ist oder nicht, aber aus irgendeinem Grund die tatsächlichen E-Mail-Adressen füttere ich immer noch, dass die E-Mail-Adresse ungültig ist. Die E-Mail-Adresse ist im String-Format, also nicht sicher, warum ich Übereinstimmungen erhalte.E-Mail regulären Ausdruck nicht übereinstimmend

if (!Regex.IsMatch(u1.EmailAddress, @"\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,}\b")) 
{ 
    MessageBox.Show("email is invalid"); 
} 
+0

Ihre regex \ b ändern [A-z0-9 ._% + -] + @ [A-z0-9 .-] + \ [Az] { 2,} \ b https://regex101.com/r/gK9sS6/1 Könnte auschecken: http://stackoverflow.com/questions/3194407/extract-all-email-addresses-from-some -txt-documents-using-ruby –

+0

Ich würde nicht versuchen, das selbst zu tun. Schau es dir im Netz an, hier ist ein Beispiel: https://msdn.microsoft.com/en-us/library/01escwtf(v=vs.110).aspx – Carra

+0

Ich würde diesen Ansatz nehmen, http: // stackoverflow. com/questions/1365407/c-sharp-code-zu-validieren-email-adresse/16403290 # 16403290 –

Antwort

3

Sie regex nur Übereinstimmungen mit Adresse geschrieben in Großbuchstaben, Ziffern und einige Symbole.

Verwenden Sie stattdessen:.

Regex.IsMatch(u1.EmailAddress, @"\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,}\b", RegexOptions.IgnoreCase) 
+0

Von regex101.com library, "Email": '/^(([a-zA-Z] | [0 -9]) | ([-] | [_] | [.])) + [@] (([A-zA-Z0-9]) | ([-])) {2,63} [.] (([a-zA-Z0-9]) {2,63}) + $/gi' – Apolo

+0

Das '/ __ PATTERN __/__ MODIFIERS__' funktioniert nicht in C#. Modifikatoren werden durch "RegexOptions" ersetzt. Idk, aber '/ [a-zA-Z]/i' und' [-] | [_] | [.] 'Scheint überflüssig. – Xiaoy312