Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ersetze ich Nicht-ASCII-Zeichen in Python durch ein einzelnes Leerzeichen?

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

Susan Sarandon
Susan SarandonOriginal
2024-11-01 14:11:02878Durchsuche

How to Replace Non-ASCII Characters with a Single Space in Python?

Nicht-ASCII-Zeichen durch ein einzelnes Leerzeichen ersetzen

In Python ist das Ersetzen von Nicht-ASCII-Zeichen durch ein Leerzeichen keine triviale Aufgabe. Es gibt viele Lösungen, um Nicht-ASCII-Zeichen zu entfernen, aber das Ersetzen bleibt eine seltene Anforderung.

Die bereitgestellte Funktion, „remove_non_ascii_1“, entfernt effektiv alle Nicht-ASCII-Zeichen. „remove_non_ascii_2“ hingegen ersetzt Nicht-ASCII-Zeichen durch Leerzeichen, aber die Anzahl der Leerzeichen entspricht der Codepunktgröße des Zeichens.

Befassen wir uns nun mit der zentralen Frage:

Wie können wir alle Nicht-ASCII-Zeichen durch ein einzelnes Leerzeichen ersetzen?

Lösung 1:

<code class="python">def replace_with_space(text):
    return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>

Dieser Ansatz verwendet einen bedingten Ausdruck innerhalb der Listenverständnis von ''.join(). Zeichen mit ASCII-Werten unter 128 bleiben unverändert, während Nicht-ASCII-Zeichen durch ein Leerzeichen ersetzt werden.

Lösung 2:

<code class="python">import re

def replace_with_space(text):
    return re.sub(r'[^\x00-\x7F]+', ' ', text)</code>

In dieser Lösung wird das Zeichen im regulären Ausdruck sorgt dafür, dass aufeinanderfolgende Nicht-ASCII-Zeichen durch ein einzelnes Leerzeichen ersetzt werden. Dadurch wird das Problem in „remove_non_ascii_2“ behoben, bei dem mehrere Leerzeichen eingefügt wurden.

Das obige ist der detaillierte Inhalt vonWie ersetze ich Nicht-ASCII-Zeichen in Python durch ein einzelnes Leerzeichen?. 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