„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum schlägt meine Java-Regex-E-Mail-Validierung fehl, obwohl ich in Eclipse „Suchen und Ersetzen“ funktionierte?

Warum schlägt meine Java-Regex-E-Mail-Validierung fehl, obwohl ich in Eclipse „Suchen und Ersetzen“ funktionierte?

Veröffentlicht am 22.12.2024
Durchsuche:477

Why Does My Java Regex Email Validation Fail Despite Working in Eclipse's Find and Replace?

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 die Regex E-Mail-Adressen abgleicht, wenn sie in einer „Suchen und Ersetzen“-Funktion in Eclipse verwendet wird, schlägt sie fehl, wenn sie mit den Pattern- und Matcher-Klassen von Java verwendet wird.

Die betreffende Regex ist:

\b[A-Z0-9._%-] @[A-Z0-9.-] \.[A-Z]{2,4}\b

Der Benutzer hat verwendete diesen Code in Java:

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!");

Aber unabhängig davon, ob die E-Mail-Adresse gültig oder ungültig ist, schlägt die Regex-Validierung fehl.

Eine mögliche Lösung

Eine vorgeschlagene Lösung besteht darin, den folgenden Java-Code zu verwenden, 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();
}

Es wurde berichtet, dass dieser Code E-Mail-Adressen zuverlässig validiert.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3