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:


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]