Heim >Backend-Entwicklung >Python-Tutorial >Wie entferne ich selektiv Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten?
Selektive Entfernung von Nicht-ASCII-Zeichen
Bei der Arbeit mit Textdaten ist es häufig erforderlich, Nicht-ASCII-Zeichen zu entfernen und gleichzeitig bestimmte Symbole beizubehalten wie Leerzeichen und Punkte. Während grundlegende Filtermethoden möglicherweise alle Nicht-ASCII-Zeichen entfernen, ist dies in manchen Fällen möglicherweise nicht wünschenswert.
Betrachten wir den folgenden Code:
<code class="python">def onlyascii(char): if ord(char) < 48 or ord(char) > 127: return '' else: return char</code>
Dieser Code entfernt alle Zeichen mit ASCII-Werten kleiner als 48 oder größer als 127, wodurch der Text effektiv von Nicht-ASCII-Zeichen befreit wird. Allerdings werden auch Leerzeichen (ASCII 32) und Punkte (ASCII 46) entfernt.
Um Nicht-ASCII-Zeichen selektiv zu entfernen und dabei Leerzeichen und Punkte beizubehalten, können wir das string.printable-Modul von Python nutzen:
<code class="python">import string printable = set(string.printable) filtered_data = filter(lambda x: x in printable, data)</code>
Der Satz string.printable enthält alle druckbaren Zeichen im System, einschließlich Ziffern, Buchstaben, Symbole, Leerzeichen und Punkte. Wenn wir diesen Satz als Filter verwenden, können wir alle nicht druckbaren Zeichen aus der Zeichenfolge entfernen.
Zum Beispiel, wenn wir die Zeichenfolge „somex00string. withx15 lustige Zeichen“ haben:
<code class="python">s = "some\x00string. with\x15 funny characters" ''.join(filter(lambda x: x in printable, s))</code>
Das Ergebnis wird sein:
'somestring. with funny characters'
Diese Methode entfernt effektiv Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten und stellt eine saubere Zeichenfolge für die weitere Verarbeitung bereit.
Das obige ist der detaillierte Inhalt vonWie entferne ich selektiv Nicht-ASCII-Zeichen unter Beibehaltung von Leerzeichen und Punkten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!