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!