」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何選擇性地刪除非 ASCII 字元並保留空格和句點?

如何選擇性地刪除非 ASCII 字元並保留空格和句點?

發佈於2024-11-01
瀏覽:759

How to Selectively Remove Non-ASCII Characters Preserving Spaces and Periods?

選擇性刪除非 ASCII 字符

處理文本資料通常需要刪除非 ASCII 字符,同時保留某些符號例如空格和句點。雖然基本過濾方法可能會刪除所有非 ASCII 字符,但在某些情況下這可能並不理想。

讓我們考慮以下程式碼:

def onlyascii(char):
    if ord(char)  127: return ''
    else: return char

此代碼刪除所有 ASCII 值小於 48 或大於 127 的字符,有效地去除文本中的非 ASCII 字符。但是,它也會刪除空格 (ASCII 32) 和句點 (ASCII 46)。

要選擇性地刪除非 ASCII 字符,同時保留空格和句點,我們可以利用 Python 的 string.printable 模組:

import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)

string.printable 集合包含系統上的所有可列印字符,包括數字、字母、符號、空格和句點。使用這個集合作為過濾器,我們可以從字串中刪除所有不可列印的字元。

例如,如果我們有字串「some\x00string.with\x15有趣的字元」:

s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))

結果將是:

'somestring. with funny characters'

此方法有效地刪除非 ASCII 字符,同時保留空格和句點,為進一步處理提供乾淨的字符串。

版本聲明 本文轉載於:1729341017如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3