Heim >Java >javaLernprogramm >Warum stimmt mein Java-Regex nicht mit E-Mail-Adressen überein?
Ein Benutzer ist auf Schwierigkeiten bei der Verwendung eines Regex für die E-Mail-Validierung in Java gestoßen. Trotz des Regex-Abgleichs in einem „Suchen und Ersetzen“-Vorgang in Eclipse werden mit der Java Matcher-Klasse keine E-Mail-Adressen gefunden.
Der Benutzer hat den folgenden Regex bereitgestellt:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
In Java lautet der von ihnen geschriebene Code:
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!");
Der reguläre Ausdruck stimmt jedoch nicht überein, unabhängig davon, ob die E-Mail wohlgeformt ist oder nicht.
Der bereitgestellte reguläre Ausdruck ähnelt dem, der im angegebenen Java-Code verwendet wird. Es gibt jedoch einige wesentliche Unterschiede:
Der folgende Java-Code wurde geändert, um diese Probleme zu beheben:
Pattern p = Pattern.compile("[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}"); Matcher m = p.matcher("[email protected]"); if (m.find()) System.out.println("Correct!");
Mit diesen Änderungen sollte der reguläre Ausdruck jetzt mit E-Mail-Adressen in Java übereinstimmen als erwartet.
Das obige ist der detaillierte Inhalt vonWarum stimmt mein Java-Regex nicht mit E-Mail-Adressen überein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!