Montag, 16. September 2013
Python - suchen und ersetzen einzelner Zeichen
Sie wollen in einem String zum Beispiel alle Dollar-Zeichen ($) durch Euro (€), alle Fragezeichen (?) durch Rufzeichen (!), einfache Hochkomma (') durch doppelte Hochkomma (") ersetzen und eckige Klammern ([ und ]) löschen.
Definieren Sie eine Übersetzungstabelle (Dictionary) und verwenden Sie die Methode str.translate(table)).
translation_table = {
"$": "€",
"?": "!",
"'": '"',
"[": None,
"]": None
}
teststring = """Das ist ein Test? Der kostet ['1000$']"""
print(teststring.translate(str.maketrans(translation_table)))
Folgendes wird dann ausgegeben:
hp@if211l $ python3
Python 3.2.3 (default, Apr 10 2013, 06:11:55)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> translation_table = {
... "$": "€",
... "?": "!",
... "'": '"',
... "[": None,
... "]": None
... }
>>>
>>> teststring = """Das ist ein Test? Der kostet ['1000$']"""
>>> print(teststring.translate(str.maketrans(translation_table)))
Das ist ein Test! Der kostet "1000€"
>>>
str.maketrans(table) erzeugt ein Dictionary mit den Unicode-Werten der Zeichen.
Tatsächlich können Sie einzelne Zeichen sogar durch ganze Strings ersetzen. Wenn Sie zB. Umlaute durch die entsprechenden HTML-Sequenzen ersetzen wollen, dann können Sie eine Tabelle wie folgt verwenden:
translation_table = {
"Ä": "Ä",
"ä": "ä",
"Ö": 'Ö',
"ö": "ö",
"Ü": "Ü",
"ü": "ü"
}
>>> translation_table = {
... "Ä": "Ä",
... "ä": "ä",
... "Ö": 'Ö',
... "ö": "ö",
... "Ü": "Ü",
... "ü": "ü"
... }
>>> "Übermäßig".translate(str.maketrans(translation_table))
'Übermäßig'
>>>
Labels: Python
Abonnieren Kommentare [Atom]
Kommentar veröffentlichen