在 Python 中,用空格取代非 ASCII 字元並不是一件簡單的任務。有許多刪除非 ASCII 字元的解決方案,但替換仍然是一個不常見的要求。
提供的函數,remove_non_ascii_1,可以有效地刪除所有非 ASCII 字元。另一方面,remove_non_ascii_2 用空格替換非 ASCII 字符,但空格的數量對應於字符的代碼點大小。
現在,讓我們解決核心問題:
如何用一個空格替換所有非 ASCII 字元?
解 1:
<code class="python">def replace_with_space(text): return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>
此方法在''.join() 的列表中理解。 ASCII 值在 128 以下的字元保持不變,而非 ASCII 字元則替換為空格。
解 2:
<code class="python">import re def replace_with_space(text): return re.sub(r'[^\x00-\x7F]+', ' ', text)</code>
在此解決方案中,字元正規表示式中確保連續的非 ASCII 字元被替換為單一空格。這消除了remove_non_ascii_2中插入多個空格的問題。
以上是如何在 Python 中用單一空格替換非 ASCII 字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!