在 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中文网其他相关文章!