如何去除文本间多余空白?已尝试strip()/split()/replace()方法未解决
问题解决方法
一、去除星级与评分数之间的大量空白
这类空白通常不是普通空格( ),而是非打印空白字符(比如制表符\t、换行符\n、不间断空格\xa0等),普通的replace(" ", "")无法匹配。可以用以下方法:
方法1:正则表达式匹配所有空白字符
Python示例:
import re text = "4.0 out of 5 stars 12,467 ratings" cleaned_text = re.sub(r"\s+", " ", text).strip() # 输出结果:"4.0 out of 5 stars 12,467 ratings"
\s+会匹配任意数量的空白字符(包括空格、制表符、换行符等),替换为单个空格后,用strip()去除首尾多余空白。
方法2:替换特定非打印空白字符
如果明确是某类特殊空白(比如不间断空格\xa0),可以直接针对性替换:
text = "4.0 out of 5 stars\xa0\xa0\xa012,467 ratings" cleaned_text = text.replace("\xa0", " ").replace(" ", " ").strip()
二、去除两个句子之间的空白
根据空白类型选择对应方法:
情况1:句子间是多空格/混合特殊空白
用正则统一处理:
import re text = "第一句。 第二句。" # 替换为单个空格 cleaned_text = re.sub(r"\s+", " ", text) # 若要完全去掉空格,替换内容改为""即可 # cleaned_text = re.sub(r"\s+", "", text)
情况2:句子间是换行/制表符混合空白
同样使用re.sub(r"\s+", " ", text),它会将所有连续空白(包括换行、制表符)替换为单个空格,按需调整替换目标即可。
内容的提问来源于stack exchange,提问作者Yathish JL
相关产品推荐
相关产品推荐

