Hvordan fjerner jeg en delstreng fra slutten av en streng i Python?

Jeg har følgende kode:

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

Jeg forventet: abcdc

Jeg fikk: abcd

Nå gjør jeg det

url.rsplit('.com', 1)

Finnes det en bedre måte?

Løsning

stripbetyr ikke "fjern denne delstrengen".x.strip(y)behandlerysom et sett med tegn og fjerner alle tegn i dette settet fra endene avx`.

I stedet kan du bruke endswith og slicing:

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

Eller bruke regulære uttrykk:

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

Hva med url[:-4]?

Kommentarer (0)

Dette er en perfekt bruk for regulære uttrykk:

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