[PYTHON] Zerlegen Sie den Hostnamen mit co.jp mit regulärem Ausdruck

Das Problem, das Sie lösen möchten

Ich möchte drei Teile aus einem Hostnamen extrahieren: Domain, SubDomain, Top Level Domain (Für die Domain-Konfiguration empfehlen wir die Erklärung von GoDaddy Youtube)

Zum Beispiel mit dem folgenden Hostnamen www.facebook.com

Subdomain: (www) Es hat nichts zu bedeuten, also werde ich es weglassen. Domain:facebook Top Level Domain:com

Ich möchte jedoch über etwas wie co.jp nachdenken, das in Japan üblich ist (wenn auch nicht genau), hier mit ** TLD einstellen **. Zum Beispiel news.yahoo.co.jp

Subdomain:news Domain:yahoo Top Level Domain:co.jp

Ich will das Ergebnis.

Außer Japan gibt es übrigens Länder, die diese Art von co.xx-Formel verwenden.

Some of the countries using .co as a second-level domain include India (.in), Indonesia (.id), Israel (.il), the United Kingdom (.uk), South Africa (.za), Costa Rica (.cr), New Zealand (.nz), Japan (.jp), South Korea (.kr) and Cook Islands (.ck).

ref: wikipedia

Python 3-Code

import re

p_tld = re.compile(r"\.(?P<tld>(?:\w{2}\.)?\w{2,5})$")

test =[
"amazon.co.jp",
"amazon.com",
"news.yahoo.co.jp",
"news.yahoo.jp",
"news.yahoo.com",
"google.jp",
"google.co.jp",
"google.com",
"www.microsoft.com"
]

for t in test:
    print(t)

    #Verliere www
    t = re.sub(r"^www\.", "", t)

    #Suchen Sie den TLD-Teil
    m = p_tld.search(t)
    if(m != None):
        print("tld:", m.group("tld"))
    
    #Schneiden Sie das TLD-Teil ab
    t = p_tld.sub("",t)

    #Der verbleibende Teil. Wenn Subdomain, drucken. Wenn nicht, drucken Sie nur die Domain
    subdomain = t.split('.')
    if(len(subdomain) > 1):
        print("subdomain:", subdomain[0])
        print("domain:", subdomain[1])
    else:
        print("domain:", subdomain[0])
    print("--------")

Testergebnisse

amazon.co.jp
tld: co.jp
domain: amazon
--------
amazon.com
tld: com
domain: amazon
--------
news.yahoo.co.jp
tld: co.jp
subdomain: news
domain: yahoo
--------
news.yahoo.jp
tld: jp
subdomain: news
domain: yahoo
--------
news.yahoo.com
tld: com
subdomain: news
domain: yahoo
--------
google.jp
tld: jp
domain: google
--------
google.co.jp
tld: co.jp
domain: google
--------
google.com
tld: com
domain: google
--------
www.microsoft.com
tld: com
domain: microsoft
--------

Recommended Posts

Zerlegen Sie den Hostnamen mit co.jp mit regulärem Ausdruck
Regulärer Ausdruck im Pymongo
Manipulation regulärer Ausdrücke durch Python
String-Ersetzung durch regulären Python-Ausdruck
Regulärer Ausdruck Gierig
Regulärer Ausdruck re
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Regulärer Ausdruck in regex.h
0 Konvertieren Sie nicht ausgefülltes Datum in Datums- / Uhrzeittyp mit regulärem Ausdruck
Sprachverarbeitung 100 Knock-80 (ersetzt durch regulären Ausdruck): Korpusformatierung
Regulärer Ausdruck der Datumsnotation
Regulärer Ausdruck vorausschauend, nach Yomi
Python-Memo für reguläre Ausdrücke
Matching-Methode für reguläre Ausdrücke
Beim Schreiben einer if-Anweisung mit einem regulären Ausdruck
Regulärer Ausdruck in Python
Bestätigungsquiz für reguläre Ausdrücke!
Bestimmen Sie, ob die Zeichenfolge Zeit mit einem regulären Python-Ausdruck ist
Python-Theorie regulärer Ausdruck Anmerkungen
Julia Quick Note [04] Regulärer Ausdruck
Zahlen mit regulären Ausdrücken extrahieren
Tool-Tool zur Überprüfung regulärer Ausdrücke