Regular Expressions und Top Level Domains

Eine häufige Aufgabe in der Programmierung ist das suchen/validieren von Email-Adressen. Mal davon abgesehen, dass ein regulärer Ausdruck nur bedingt dazu benutzt werden kann, funktionieren filtern grobe Näherungen schon mal die meisten. Dies ist eine grobe Näherung wie sie in vielen Programmen bereits hinterlegt ist. Auch im Internet finden sich noch oft Ausdrücke wie dieser (Quelle):

strPattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"

In diesem Blogpost geht es mir im besonderen um das Matching der Toplevel-Domain. Dabei ist vielfach noch hinterlegt, dass diese zwischen zwei und drei Buchstaben lang sein muss. Das gilt aber leider nur bei „country code top level domains“, die eben einem Land gehören. Generische Top Level Domains sind meist länger. Eine“.info“-Domain ist valide, würde aber von obigem Regex nicht gematcht.

strPattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$"

Obiger Regex ist derweil immer noch nur eine Näherung an den IEEE-Standard, filtert aber längere Toplevel-Domains nicht mehr aus.

Dieser Beitrag wurde unter Programmierung abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.