Hoe verwijder ik een substring van het einde van een string in Python?

Ik heb de volgende code:

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

Ik verwachtte: abcdc

Ik kreeg: abcd

Nu doe ik

url.rsplit('.com', 1)

Is er een betere manier?

Oplossing

strip betekent niet "verwijder deze substring". x.strip(y) behandelt y als een verzameling tekens en verwijdert alle tekens uit die verzameling van de uiteinden van x.

In plaats daarvan zou je endswith en slicing kunnen gebruiken:

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

Of gebruik reguliere expressies:

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

Wat dacht je van url[:-4]?

Commentaren (0)

Dit is een perfect gebruik voor reguliere expressies:

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