Wie entferne ich eine Teilzeichenkette vom Ende einer Zeichenkette in Python?

Ich habe den folgenden Code:

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

Ich erwartete: abcdc

Ich erhielt: abcd

Jetzt mache ich

url.rsplit('.com', 1)

Gibt es einen besseren Weg?

Lösung

strip" bedeutet nicht "diese Teilzeichenkette entfernen". x.strip(y)` behandelt "y" als eine Menge von Zeichen und entfernt alle Zeichen dieser Menge von den Enden von "x".

Stattdessen könnten Sie endswith und slicing verwenden:

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

Oder reguläre Ausdrücke verwenden:

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

Wie wäre es mit url[:-4]?

Kommentare (0)

Dies ist eine perfekte Anwendung für reguläre Ausdrücke:

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