Come rimuovo una sottostringa dalla fine di una stringa in Python?

Ho il seguente codice:

url = 'abcdc.com'
print(url.strip('.com'))

Mi aspettavo: abcdc.

Ho ottenuto: abcd.

Ora faccio

url.rsplit('.com', 1)

C'è un modo migliore?

Soluzione

strip non significa "rimuovi questa sottostringa". x.strip(y) tratta y come un insieme di caratteri e rimuove qualsiasi carattere in quell'insieme dalle estremità di x.

Invece, potreste usare endswith e lo slicing:

url = 'abcdc.com'
if url.endswith('.com'):
    url = url[:-4]

O usando le espressioni regolari:

import re
url = 'abcdc.com'
url = re.sub('\.com$', '', url)
Commentari (10)

Che ne dici di url[:-4]?

Commentari (0)

Questo è un uso perfetto per le espressioni regolari:

>>> import re
>>> re.match(r"(.*)\.com", "hello.com").group(1)
'hello'
Commentari (1)