Regex, um Domain.CCTLD zu entsprechen

8

Kennt jemand einen regulären Ausdruck, um Domain.CCTLD zu entsprechen? Ich will keine Subdomains, nur die "atomare Domäne". Zum Beispiel wird docs.google.com nicht gefunden, aber google.com tut es. Dies wird jedoch mit Sachen wie .co.uk , CCTLDs kompliziert. Kennt jemand eine Lösung? Vielen Dank im Voraus.

BEARBEITEN: Ich habe festgestellt, dass ich auch mit mehreren Subdomains arbeiten muss, wie zB john.doe.google.co.uk . Brauchen Sie mehr denn je eine Lösung: P.

    
Tom 07.07.2010, 22:16
quelle

4 Antworten

3

Basierend auf Ihrem obigen Kommentar werde ich die Frage neu interpretieren - anstatt eine Regex zu erstellen, die ihnen entspricht, erstellen wir eine Funktion, die sie abgleicht, und wenden diese Funktion an, um eine Liste von Domains zu filtern Namen, die nur erstklassige Domains enthalten, z google.com, amazon.de.

Zuerst benötigen wir eine Liste von TLDs. Wie Greg bereits erwähnt hat, ist die öffentliche Suffixliste ein großartiger Ausgangspunkt. Nehmen wir an, Sie haben die Liste in ein Python-Array namens suffixes geparst. Wenn das etwas ist, mit dem Sie nicht zufrieden sind, kommentieren Sie und ich kann Code hinzufügen, der das tut.

%Vor%

Jetzt brauchen wir Code, der angibt, ob ein bestimmter Domainname mit dem Muster some-name.suffix:

übereinstimmt %Vor%     
Benson 08.07.2010, 21:41
quelle
8

Es klingt so, als würden Sie nach Informationen suchen, die über das Suffix-Liste verfügbar sind.

  

Ein "öffentliches Suffix" ist eines, unter dem Internetnutzer Namen direkt registrieren können. Einige Beispiele für öffentliche Suffixe sind ".com", ".co.uk" und "pvt.k12.wy.us". Die Liste der öffentlichen Suffixe ist eine Liste aller bekannten öffentlichen Suffixe.

Es gibt keinen einzelnen regulären Ausdruck, der mit der Liste der öffentlichen Suffixe übereinstimmt. Sie müssen Code implementieren, um die öffentliche Suffixliste zu verwenden, oder eine vorhandene Bibliothek finden, die dies bereits tut.

    
Greg Hewgill 07.07.2010 22:23
quelle
2

Ich würde das wahrscheinlich lösen, indem ich eine vollständige Liste von TLDs erhalte und sie benutze, um die Regex zu erstellen. Zum Beispiel (in Ruby, sorry, noch kein Pythonista):

%Vor%

Ich glaube nicht, dass es möglich ist, zwischen einer echten zweiteiligen TLD und einer Subdomain zu unterscheiden, ohne die tatsächliche Liste der TLDs zu kennen (dh: Sie könnten immer eine Subdomain erstellen, die wie eine TLD aussieht, wenn Sie wissen, wie die Regex funktioniert .)

    
Mike Tunnicliffe 07.07.2010 22:32
quelle
-3
%Vor%     
Joe Garrett 07.07.2010 22:23
quelle

Tags und Links