Probleme mit der Java-Regex-E-Mail-Validierung
Beim Versuch, E-Mail-Adressen mithilfe eines regulären Ausdrucks zu validieren, ist ein Java-Benutzer auf ein Problem gestoßen, bei dem die Die Validierung schlägt selbst bei wohlgeformten E-Mail-Adressen fehl. Trotz der Tatsache, dass der reguläre Ausdruck E-Mail-Adressen abgleicht, wenn er in einer „Suchen und Ersetzen“-Funktion in Eclipse verwendet wird, schlägt er fehl, wenn er mit den Pattern- und Matcher-Klassen von Java verwendet wird.
Der betreffende reguläre Ausdruck ist:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
Der Benutzer hat diesen Code in Java verwendet:
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!");
Unabhängig davon, ob die E-Mail-Adresse gültig oder ungültig ist, erfolgt jedoch die Regex-Validierung schlägt fehl.
Eine mögliche Lösung
Eine vorgeschlagene Lösung ist die Verwendung des folgenden Java-Codes, der einen ähnlichen regulären Ausdruck verwendet:
public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^}[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); public static boolean validate(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.matches(); }
Dies Es wurde berichtet, dass der Code E-Mail-Adressen zuverlässig validiert.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Java-Regex-E-Mail-Validierung fehl, obwohl ich in Eclipse „Suchen und Ersetzen' funktionierte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!