Selektive Entfernung von Nicht-ASCII-Zeichen
Bei der Arbeit mit Textdaten müssen häufig Nicht-ASCII-Zeichen entfernt und gleichzeitig bestimmte Symbole beibehalten werden 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:
def onlyascii(char):
if ord(char) 127: return ''
else: return char
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:
import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)
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.
Wenn wir beispielsweise die Zeichenfolge „einige\x00Zeichenfolge. mit\x15 lustigen Zeichen“ haben:
s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))
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.
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