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

Wie entferne ich nicht druckbare Zeichen aus Zeichenfolgen in Python?

DDD
DDDOriginal
2024-10-22 06:55:02509Durchsuche

How to Strip Non-Printable Characters from Strings in Python?

Nicht druckbare Zeichen aus einem String in Python entfernen

In Perl ist das s/[^[:print:]]// g regex entfernt effektiv alle nicht druckbaren Zeichen aus einer Zeichenfolge. Allerdings gibt es in Python keine entsprechende POSIX-Regex-Klasse, sodass sich einige fragen, wie sie dieselbe Aufgabe erfüllen können.

Unicode verstehen

Die Herausforderung liegt im Umgang mit Unicode-Zeichen , da die string.printable-Methode sie möglicherweise unbeabsichtigt entfernt.

Erstellen einer benutzerdefinierten Zeichenklasse

Um dieses Problem zu beheben, können wir mithilfe der Unicodedaten eine benutzerdefinierte Zeichenklasse erstellen Modul. Die Funktion unicodedata.category() bietet Einblicke in Zeichenkategorien. Beispielsweise können wir eine Zeichenklasse namens „control_characters“ definieren, um nicht druckbare Zeichen wie Steuerzeichen und Ersatzzeichen darzustellen, indem wir diese Kategorien aus dem Unicode-Zeichensatz herausfiltern.

<code class="python">import unicodedata
import re

categories = {'Cc', 'Cf', 'Cs'}  # Include desired categories here
control_chars = ''.join(chr(i) for i in range(sys.maxunicode) if unicodedata.category(chr(i)) in categories)
control_char_re = re.compile('[%s]' % re.escape(control_chars))</code>

Dieser Ansatz bietet eine verbesserte Effizienz im Vergleich zu Iteration über Zeichenfolgen.

<code class="python">def remove_control_chars(s):
    return control_char_re.sub('', s)</code>

Zusätzliche Anpassung

Für Szenarien, in denen das Filtern zusätzlicher Kategorien (z. B. Zeichen für den privaten Gebrauch) erforderlich ist, können Sie die Zeichenklasse erweitern entsprechend.

<code class="python">categories.add('Co')  # Add private-use characters
# Rebuild the character class and regex</code>

Durch die Verwendung dieses Ansatzes können Sie nicht druckbare Zeichen effektiv aus Unicode-Zeichenfolgen in Python entfernen und so sowohl grundlegende als auch benutzerdefinierte Anwendungsfälle abdecken.

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