Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entferne ich nicht druckbare Zeichen aus Zeichenfolgen in Python?

Wie entferne ich nicht druckbare Zeichen aus Zeichenfolgen in Python?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-22 06:57:02268Durchsuche

How to Remove Non-Printable Characters from Strings 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn