正则表达式去除中文字之间的空格,保留英文单词之间的空格,对于英文单词中间夹杂着数字的情况,应该保留空格但没有保留
# -*- coding:utf-8 -*- # import re
def _clean_space(text): match_regex = re.compile(u'[u4e00-u9fa5。.,,::《》、()()]{1} +(?<![a-zA-Z])|d+ +| +d+|[a-z A-Z]+') should_replace_list = match_regex.findall(text) order_replace_list = sorted(should_replace_list,key=lambda i:len(i),reverse=True) for i in order_replace_list: if i == u' ': continue new_i = i.strip() text = text.replace(i,new_i) return text text = "从大约40万 年前开始,一个关键的环境转变 发生了。hello world!" text=text.decode("utf-8") text=_clean_space(text).encode("utf-8") print(text)