我需要将所有非ASCII(\x00-\x7F)字符替换为空格。我很惊讶在Python中这并不是很简单,除非我漏了什么。下面的函数只是删除所有非ASCII字符:
def remove_non_ascii_1(text):
return ''.join(i for i in text if ord(i)<128)
这个函数会将非ASCII字符替换为字符编码点所对应的字节数量的空格(例如,–
字符会被替换为3个空格):
def remove_non_ascii_2(text):
return re.sub(r'[^\x00-\x7F]',' ', text)
我该如何用一个空格替换所有非ASCII字符?
sed
,awk
和perl
的答案也很有趣。但我建议将它们放在一个统一的“X/Y答案”中,而不是分开回答。通常情况下,如果代码是从例如bash CLI运行的地方(其中四个都通常可用),而不是实际运行Python脚本的地方,sed
,awk
或perl
的答案可以替代Python答案。 - dotancohen