Heim >Backend-Entwicklung >Python-Tutorial >Wie entferne ich nicht druckbare Zeichen aus Zeichenfolgen in Python?
Nicht druckbare Zeichen aus einem String in Python entfernen
Im Gegensatz zu Perl fehlen in Python POSIX-Regex-Klassen, was die Erkennung erschwert und entfernen Sie nicht druckbare Zeichen mithilfe regulärer Ausdrücke.
Wie können Sie dies in Python erreichen?
Ein Ansatz besteht darin, das Unicodedata-Modul zu nutzen. Die Funktion unicodedata.category klassifiziert Unicode-Zeichen in verschiedene Kategorien. Beispielsweise stellen als Cc (Kontrolle) kategorisierte Zeichen nicht druckbare Zeichen dar.
Mit diesem Wissen können Sie eine benutzerdefinierte Zeichenklasse erstellen, die allen Steuerzeichen entspricht:
<code class="python">import unicodedata import re import sys all_chars = (chr(i) for i in range(sys.maxunicode)) categories = {'Cc'} control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories) control_char_re = re.compile('[%s]' % re.escape(control_chars)) def remove_control_chars(s): return control_char_re.sub('', s)</code>
Diese Funktion Entfernt effektiv alle nicht druckbaren ASCII-Zeichen aus der Eingabezeichenfolge.
Alternativ können Sie die integrierte string.printable-Methode von Python verwenden, um nicht druckbare Zeichen herauszufiltern. Allerdings schließt diese Methode Unicode-Zeichen aus, sodass sie möglicherweise nicht für alle Anwendungsfälle geeignet ist.
Um Unicode-Zeichen zu verarbeiten, können Sie die Zeichenklasse im regulären Ausdruck wie folgt erweitern:
<code class="python">control_chars = ''.join(map(chr, itertools.chain(range(0x00,0x20), range(0x7f,0xa0))))</code>
Diese erweiterte Zeichenklasse umfasst die grundlegenden Steuerzeichen sowie gängige nicht druckbare Unicode-Zeichen.
Durch entsprechende Änderung der Funktion „remove_control_chars“ können Sie sowohl ASCII- als auch Unicode-nicht druckbare Zeichen erfolgreich verarbeiten.
Das obige ist der detaillierte Inhalt vonWie entferne ich nicht druckbare Zeichen aus Zeichenfolgen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!