So funktioniert das Muster
| Teil | Bedeutung |
|---|---|
^ | Anfang der Zeichenkette |
[A-Za-z0-9._%+-]+ | Der lokale Teil: ein oder mehrere Buchstaben, Ziffern, Punkte, Unterstriche, Prozentzeichen, Plus- oder Bindestriche |
@ | Ein wörtliches @ |
[A-Za-z0-9.-]+ | Der Domainname, einschließlich Subdomains |
\. | Ein wörtlicher Punkt vor der Top-Level-Domain |
[A-Za-z]{2,} | Die Top-Level-Domain: zwei oder mehr Buchstaben (com, io, museum) |
$ | Ende der Zeichenkette |
Code-Beispiele
JavaScript
const re = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}', value))PHP
preg_match('/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/', $value) === 1;
Hinweise und Einschränkungen
Das ist das praktische Muster, das die meisten Anmeldeformulare verwenden. Es akzeptiert einige technisch ungewöhnliche Adressen (zwei Punkte hintereinander) und lehnt seltene gültige ab (Local Parts in Anführungszeichen, Domains mit IP-Adressen). Der einzige echte Test einer E-Mail-Adresse ist der Versand eines Bestätigungslinks. In HTML-Formularen bekommst du mit <input type="email"> die Browser-Validierung kostenlos dazu.
Regex-Tester
Gib ein Muster ein und sieh zu, wie Übereinstimmungen in deinem Testtext in Echtzeit hervorgehoben werden.