python去除中文字之间的空格,保留英文单词之间的空格【转】

正则表达式去除中文字之间的空格,保留英文单词之间的空格,对于英文单词中间夹杂着数字的情况,应该保留空格但没有保留

 # -*- 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)

 

posted @ 2020-10-29 19:05  cydcyd  阅读(1682)  评论(1)    收藏  举报