Ich versuche, die letzten 3 Zeichen aus einer Zeichenfolge in Python zu entfernen. Ich weiß nicht, was diese Zeichen sind, daher kann ich sie nicht verwenden rstrip
. Außerdem muss ich Leerzeichen entfernen und in Großbuchstaben konvertieren
Ein Beispiel wäre:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
Dies funktioniert und gibt mir BS12, was ich will, aber wenn die letzten 4. und 3. Zeichen gleich sind, verliere ich beide, zB wenn foo = "BS11 1AA"
ich nur bekomme'BS'
Beispiele für foo
könnten sein:
BS1 1AB
bs11ab
BS111ab
Die Zeichenfolge kann aus 6 oder 7 Zeichen bestehen und ich muss die letzten 3 Zeichen löschen (unter der Annahme, dass kein Leerzeichen vorhanden ist).
Irgendwelche Tipps?
''.join(foo.split())
besser ist alsfoo.replace(' ', '')
bei Verwendung in Unicode-Zeichenfolgen, da zusätzlich zum Zeichen auch Leerzeichen entfernt werden' '
(insbesondere werden auch nicht unterbrechende Leerzeichen entfernt). Das heißt, esreplace()
ist wahrscheinlich viel schneller, so dass es verwendet werden kann, wenn beispielsweise bekannt ist, dass die Eingabezeichenfolgen in ASCII codiert sind, das nur ein Leerzeichen enthält (ich verwende hier die Python 2-Terminologie)