Heim >Java >javaLernprogramm >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?

Barbara Streisand
Barbara StreisandOriginal
2024-11-30 17:30:11676Durchsuche

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 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn