python replace mehrere old characters?
Hi, wenn ich in einem string etwas replacen möchte brauche ich ja:
string.replace("old","new) z.b. test.replace("a","b")
gibt es hier eine Möglichkeit um mehrere alte Charakter zu überprüfen bzw egal welches zeichen es ist es zu ersetzen? Quasi
test.replace(alleZeichen,".")
oder
test.replace("a und b",".")
Oder muss ich dort dann mehrere replaces machen?
3 Antworten
wenn du komplexere Ersetzungen machen willst, bieten sich regular expressions an. Das gibt es sicherlich auch für python.
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Programmiersprache, Python 3, Programmieren & Softwareentwicklung
Eine bisher nicht genannte Möglichkeit:
translate(self, table, /)
Replace each character in the string using the
given translation table.
table
Translation table, which must be a mapping of
Unicode ordinals to Unicode ordinals, strings, or None.
The table must implement lookup/indexing via __getitem__,
for instance a dictionary or list. If this operation raises
lookupError, the character is left untouched.
Characters mapped to None are deleted.
Oft ist die Nutzung von RexExps natürlich ebequemer.
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Programmieren & Softwareentwicklung
Oder muss ich dort dann mehrere replaces machen?
Zumindest per String-Methoden musst du dann mehrere Replaces ansetzen. Das kannst du aber auch "verketten".
z.B.
>>> "Hello".replace("e", "a").replace("l", "r")
Harro
Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)
xxxcyberxxx
30.03.2023, 22:20
@NMI21
ich möchte nämlich jeden Buchstaben quasi durch nichts ersetzen da müsste ich dann ja 26 replaces für Kleinbuchstaben und 26 für Großbuchstaben machen
nichts, was mit Schleifen nicht durchaus kurz zu schreiben wäre.
Gibt es da irgendwie nen anderen Weg?
Regex
Okay danke! Wird schwierig... ich möchte nämlich jeden Buchstaben quasi durch nichts ersetzen da müsste ich dann ja 26 replaces für Kleinbuchstaben und 26 für Großbuchstaben machen. Gibt es da irgendwie nen anderen Weg?