Décomposer le nom d'hôte avec co.jp avec une expression régulière

Le problème que vous souhaitez résoudre

Je souhaite extraire trois parties d'un nom d'hôte: domaine, sous-domaine, domaine de premier niveau (Pour la configuration du domaine, nous recommandons l'explication de GoDaddy Youtube)

Par exemple, avec le nom d'hôte suivant www.facebook.com

Sous-domaine: (www) Cela ne veut rien dire, je vais donc l'omettre. Domain:facebook Top Level Domain:com

Cependant, je voudrais penser à quelque chose comme co.jp, qui est courant au Japon (mais pas exactement), ici avec ** set TLD **. Par exemple, news.yahoo.co.jp

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

Je veux le résultat.

À propos, à part le Japon, il existe des pays qui utilisent ce type de formule co.xx.

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

Code Python 3

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)

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

    #Trouvez la partie TLD
    m = p_tld.search(t)
    if(m != None):
        print("tld:", m.group("tld"))
    
    #Couper la partie TLD
    t = p_tld.sub("",t)

    #La partie restante. S'il s'agit d'un sous-domaine, imprimez. Sinon, n'imprimez que le domaine
    subdomain = t.split('.')
    if(len(subdomain) > 1):
        print("subdomain:", subdomain[0])
        print("domain:", subdomain[1])
    else:
        print("domain:", subdomain[0])
    print("--------")

résultats de test

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

Décomposer le nom d'hôte avec co.jp avec une expression régulière
Expression régulière en pymongo
Manipulation d'expressions régulières par Python
Remplacement de chaîne par une expression régulière Python
Expression régulière gourmande
Expression régulière re
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Expression régulière dans regex.h
0 Convertir une date non remplie en type datetime avec une expression régulière
Traitement du langage 100 knock-80 (remplacé par une expression régulière): formatage du corpus
Expression régulière de la notation de date
Expression régulière look-ahead, after-yomi
mémo d'expression régulière python
Méthode de correspondance d'expression régulière
Lors de l'écriture d'une instruction if avec une expression régulière
Expression régulière en Python
Quiz de confirmation d'expression régulière!
Déterminer si la chaîne est l'heure avec une expression régulière python
Notes sur l'expression régulière de la théorie Python
Julia Quick Note [04] Expression régulière
Extraire des nombres avec des expressions régulières
Résumé de l'outil de vérification des expressions régulières