Zunächst einmal weiß ich, dass die Verwendung von Regex für E-Mails nicht empfohlen wird, aber ich muss dies testen.
Ich habe diesen regulären Ausdruck:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
In Java habe ich Folgendes getan:
Pattern p = Pattern.compile("\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b");
Matcher m = p.matcher("[email protected]");
if (m.find())
System.out.println("Correct!");
Die Regex schlägt jedoch fehl, unabhängig davon, ob die E-Mail willkommen ist oder nicht. Ein "Suchen und Ersetzen" in Eclipse funktioniert problemlos mit demselben regulären Ausdruck.
Irgendeine Idee?
Vielen Dank,
Antworten:
FWIW, hier ist der Java-Code, mit dem wir E-Mail-Adressen validieren. Die Regexp sind sehr ähnlich:
Funktioniert ziemlich zuverlässig.
quelle
Hier ist RFC822-kompatibler Regex für Java angepasst:
Ausgabe:
Der Regex stammt aus diesem Beitrag: Mail :: RFC822 :: Address: Regexp-basierte Adressvalidierung . Die Ergebnisse sollten mit der Online-Version übereinstimmen .
quelle
email@email
als gültige E-MailTu es nicht. Sie werden niemals einen gültigen Ausdruck erhalten.
Dies sind beispielsweise alle gültigen E-Mail-Adressen:
Um nur einige Probleme zu nennen:
Bevor Sie überhaupt beginnen, überprüfen Sie die entsprechenden RFCs
quelle
Das liegt daran, dass Sie die Unempfindlichkeit gegenüber Groß- und Kleinschreibung vergessen:
Dies entspricht Ihrem Beispiel, ignoriert jedoch viele gültige E-Mails.
quelle
Eine weitere einfache Alternative, um 99% der E-Mails zu validieren
quelle
Dies ist ein gültiger regulärer Ausdruck für die Validierung von E-Mails. Es ist vollständig kompatibel mit RFC822 und akzeptiert IP-Adressen und Servernamen (für Intranetzwecke).
Hier sind einige Ausgabebeispiele, wenn Sie aufrufen
isEmailValid(emailVariable)
:quelle
Ist die Bearbeitung auf CASE_INSENSITIVE eingestellt ?
quelle
Mit dieser Methode können Sie die E-Mail-Adresse in Java überprüfen.
quelle
Allgemeines E-Mail-Format (RE), das auch Domains wie co.in, co.uk, com, Outlook.com usw. enthält.
Und die Regel sagt das:
(Punkt, Punkt, Punkt), vorausgesetzt, es ist nicht das erste oder letzte Zeichen, und vorausgesetzt, es erscheint nicht zwei- oder mehrmals hintereinander.
quelle
Änderung der Antwort von Armer B., bei der E-Mails mit der Endung '.co.uk' nicht validiert wurden.
quelle
Regex:
^[\\w!#$%&’*+/=?
{|} ~ ^ -] + (?: \. [\ W! # $% & '* + / =?{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$
quelle
Wenn Sie nicht latain Zeichen zulassen möchten, funktioniert dieses für mich ganz gut.
IPs nach dem @ sind nicht zulässig, aber die meisten gültigen E-Mails im from of
[email protected]
können damit validiert werden.\p{L}
validiert UTF-Buchstaben und\p{N}
validiert UTF-Nummern. Sie können dieses Dokument für weitere Informationen überprüfen .quelle
Versuchen Sie den folgenden Code für E-Mail ist Format von
1. Teil
-jsmith
2. Teil[email protected]
quelle
Ich habe dies unten
regular expression
für einzelne und mehrere aufeinanderfolgende Punkte imdomain
Namen getestet -und hier sind die Beispiele, die von oben vollständig erfüllt wurden
regex
.Ich habe versucht, das Maximum zu decken , das
email id's validation
hier oben häufig verwendet wirdregex
und dennoch funktioniert ...Wenn Sie noch wissen, dass einige konsequent verwendete
email id's
hier gelassen wurden, lassen Sie es mich bitte im Kommentarbereich wissen!quelle
Dies ist der reguläre Ausdruck für gültige E-Mail-Adressen.
quelle
Sie können einen einfachen regulären Ausdruck zum Überprüfen der E-Mail-ID verwenden.
Beschreibung :
quelle
Mithilfe dieser Bibliotheken können Sie überprüfen, ob E-Mails gültig sind oder nicht, und natürlich können Sie ein Array für dieses folgende Projekt hinzufügen.
Ausgabe :
Mail ist: wahr
Mail ist: false
quelle
quelle
Dank der Antwort von @Jason Buberel denke ich, dass Kleinbuchstaben von der RegEX validiert werden müssen. Folgendes ist also richtig:
Jetzt sind sowohl [email protected] als auch [email protected] gültig!
Beachten Sie, dass \. sollte \\ sein. fliehen . und haben \. selbst. Da , . ist ein aussagekräftiges Zeichen in Java RegEX bedeutet alle Zeichen.
quelle
Pattern.CASE_INSENSITIVE
, also keine Notwendigkeit füra-z
Regex für Facebook-ähnliche Validierung:
Dto für Unit-Tests (mit Lombok):
Gültige / ungültige E-Mails unten mit Unit-Tests:
}}
quelle