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
Freigeben: 2024-11-30 17:30:11
Original
639 Leute haben es durchsucht

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
Nach dem Login kopieren

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!");
Nach dem Login kopieren

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();
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage