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 Posts [Atom]
Kommentar veröffentlichen