580 Stimmen

Wie entferne ich eine Teilzeichenkette vom Ende einer Zeichenkette?

Ich habe den folgenden Code:

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

Das hatte ich erwartet: abcdc

Ich habe: abcd

Jetzt habe ich

url.rsplit('.com', 1)

Gibt es einen besseren Weg?

889voto

Steef Punkte 30321

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

Sur Python 3.9 und neuere Versionen können Sie die removeprefix y removesuffix Methoden, um eine ganze Teilzeichenkette von beiden Seiten der Zeichenkette zu entfernen:

url = 'abcdc.com'
url.removesuffix('.com')    # Returns 'abcdc'
url.removeprefix('abcdc.')  # Returns 'com'

Der entsprechende Python-Erweiterungsvorschlag lautet PEP-616 .

Sur Python 3.8 und älter können Sie endswith und Schneiden:

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

Oder ein regulärer Ausdruck :

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

111voto

Charles Collis Punkte 1383

Wenn Sie sicher sind, dass die Zeichenfolge nur am Ende erscheint, ist es am einfachsten, "replace" zu verwenden:

url = 'abcdc.com'
print(url.replace('.com',''))

74voto

yairchu Punkte 21749
def strip_end(text, suffix):
    if suffix and text.endswith(suffix):
        return text[:-len(suffix)]
    return text

61voto

user3129181 Punkte 569

Da anscheinend noch niemand darauf hingewiesen hat:

url = "www.example.com"
new_url = url[:url.rfind(".")]

Dies sollte effizienter sein als die Methoden mit split() da kein neues Listenobjekt erstellt wird, und diese Lösung funktioniert auch bei Zeichenketten mit mehreren Punkten.

34voto

Xavier Guihot Punkte 42435

Beginnend in Python 3.9 können Sie verwenden removesuffix stattdessen:

'abcdc.com'.removesuffix('.com')
# 'abcdc'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X