Nja, ein einfaches
.*[a-z].*@.*[a-z].*[.][a-z]{2,}
geht meistens,
ABER auch wenn man erstmal denkt die TLD sind
immer zwei oder mehr Buchstaben ...
Tja, das war einmal ... seit es bei uns "Sprechendes" wie .sex .porn .store .bank .author .fishing oder .academy gibt, wollten die Anderen das auch und schon hat man den Salat.
https://tld-list.com/tlds-from-a-z
.москва (.moscow)
.تونس (.tunesia)
.ਭਾਰਤ (.india)
.グーグル (japanisches .google)
.亚马逊 (.amazon auf chinesisch
)
.삼성 (.samsung)
TLDs werden doch nicht mit Punicode geschrieben?
Die "Umlaut"-Domains selber sind in Punicode, also "normale" Buchstaben.
Aber Links vom @ wird es dann auch wieder wild.
Was mindestens da sein muß, ist das @ und hinten ein Punkt ... außer für Mails im Intranet, z.B. auf
Localhost oder einen Gerätenamen.
.+@.+\..+
Und gegen sowas wie a@b.c hilft dann eh nur, wenn man die Adresse tatsächlich validiert, also versucht mit ihr zu reden.
[add]
Also, auch die TLD werden als Punycode
übertragen, also besteht fast die ganze Mailadrresse
eigentlich nur aus Buchstaben und Zahlen und . und - und dem @,
aber nun kommt es drauf an, ob du die interne Darstellung speicherst, oder das tatsächlich sichtbare Eingabe, weil da ist fast alles erlaubt.
.ਭਾਰਤ = .xn--s9brj9c
.+@.+[.][-a-z0-9]{2,}
aber nur für die interne Darstellung.