„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie ersetze ich Nicht-ASCII-Zeichen in Python durch Leerzeichen?

Wie ersetze ich Nicht-ASCII-Zeichen in Python durch Leerzeichen?

Veröffentlicht am 14.11.2024
Durchsuche:626

How to Replace Non-ASCII Characters with Spaces in Python?

Ersetzen von Nicht-ASCII-Zeichen durch Leerzeichen in Python

Die Aufgabe, Nicht-ASCII-Zeichen durch Leerzeichen in Python zu ersetzen, mag einfach erscheinen, aber Die integrierten Funktionen, die häufig zur Zeichenmanipulation verwendet werden, stellen möglicherweise nicht sofort eine einfache Lösung dar. Lassen Sie uns die Herausforderungen und alternativen Ansätze erkunden, um dieses Ziel effektiv zu erreichen.

Aktuelle Lösungen

Zwei bestehende Ansätze werden in der Frage vorgestellt:

  • remove_non_ascii_1() entfernt alle Nicht-ASCII-Zeichen.
  • remove_non_ascii_2() ersetzt Nicht-ASCII-Zeichen durch Leerzeichen und verwendet mehrere Leerzeichen für Zeichen mit größeren Codepunkten.

Ersetzung einzelner Leerzeichen

Die Frage fragt speziell nach dem Ersetzen aller Nicht-ASCII-Zeichen durch ein einzelnes Leerzeichen. Um dies zu erreichen, müssen wir die Funktion remove_non_ascii_1() ändern:

def remove_non_ascii_1(text):
    return ''.join([i if ord(i) 

In dieser aktualisierten Funktion verwenden wir einen bedingten Ausdruck, um Nicht-ASCII-Zeichen durch ein einzelnes Leerzeichen zu ersetzen . Der ''.join()-Ausdruck verkettet dann die geänderten Zeichen zu einer einzigen Zeichenfolge.

Ansatz für reguläre Ausdrücke

Der reguläre Ausdruck in remove_non_ascii_2() kann auch für die Ersetzung durch ein Leerzeichen angepasst werden:

re.sub(r'[^\x00-\x7F] ', ' ', text)

Hier Der Modifikator „ “ wird innerhalb der eckigen Klammern hinzugefügt, um sicherzustellen, dass aufeinanderfolgende Nicht-ASCII-Zeichen durch ein einzelnes Leerzeichen ersetzt werden.

Hinweis: Diese Funktionen arbeiten mit Unicode-Zeichenfolgen. Wenn mit Byte-Strings gearbeitet wird, müssen die Unicode-Zeichen zunächst dekodiert werden (z. B. als unicode(text, 'utf-8').

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3