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)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM