Ich versuche, den letzten Teil einer Zeichenfolge vor einem bestimmten Zeichen zu drucken.
Ich bin mir nicht ganz sicher, ob ich die Methode string .split () oder das Schneiden von Zeichenfolgen oder etwas anderes verwenden soll.
Hier ist ein Code, der nicht funktioniert, aber ich denke, er zeigt die Logik:
x = 'http://test.com/lalala-134'
print x['-':0] # beginning at the end of the string, return everything before '-'
Beachten Sie, dass die Zahl am Ende unterschiedlich groß ist, sodass ich am Ende der Zeichenfolge keine genaue Anzahl festlegen kann.
Sie suchen str.rsplit()
mit einem Limit:
print x.rsplit('-', 1)[0]
.rsplit()
sucht am Ende der Eingabezeichenfolge nach der Aufteilungszeichenfolge, und das zweite Argument begrenzt die Häufigkeit der Aufteilung auf nur einmal.
Eine andere Option ist die Verwendung str.rpartition()
, die immer nur einmal aufgeteilt wird:
print x.rpartition('-')[0]
Nur einmal zu teilen, str.rpartition()
ist auch die schnellere Methode; Wenn Sie mehr als einmal teilen müssen, können Sie nur verwenden str.rsplit()
.
Demo:
>>> x = 'http://test.com/lalala-134'
>>> print x.rsplit('-', 1)[0]
http://test.com/lalala
>>> 'something-with-a-lot-of-dashes'.rsplit('-', 1)[0]
'something-with-a-lot-of'
und das gleiche mit str.rpartition()
>>> print x.rpartition('-')[0]
http://test.com/lalala
>>> 'something-with-a-lot-of-dashes'.rpartition('-')[0]
'something-with-a-lot-of'
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen