You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何删除字符串字符间多余空格实现字符串规范化

问题描述

如何在Python中删除字符串字符间的多余空格,对字符间包含冗余空格的字符串进行规范化处理?

  • 原始待处理字符串示例:
'I  n e e d  t o  d e l e t e  t h e  e x t r a  w h i t e s p a c e  b e t w e e n  c h a r a c t e r s'
  • 期望转换后的目标结果:
'I need to delete the extra whitespace between characters'
解决方案

这类字符串的特征很明确:单词内部的字母被错误插入了单个空格,单词和单词之间保留了2个及以上的空格作为间隔,按这个特征拆分处理即可,提供两种常用实现:

方法1:无需引入依赖的基础实现

不需要导入额外模块,直接用字符串内置方法就能处理,适配示例场景:

raw_str = 'I  n e e d  t o  d e l e t e  t h e  e x t r a  w h i t e s p a c e  b e t w e e n  c h a r a c t e r s'
# 1. 按2个连续空格拆分字符串,得到每个被打散的单词片段
# 2. 遍历每个片段,删除片段内的所有空格还原正确单词
# 3. 用单个空格拼接所有单词得到最终结果
normalized_str = ' '.join(part.replace(' ', '') for part in raw_str.split('  '))
print(normalized_str)
# 输出:I need to delete the extra whitespace between characters

如果字符串首尾可能存在多余空格,可以在拆分前先调用strip()去除首尾空白,避免生成空片段:

raw_str = '  I  n e e d  t o  d e l e t e  t h e  e x t r a  w h i t e s p a c e  b e t w e e n  c h a r a c t e r s  '
normalized_str = ' '.join(part.replace(' ', '') for part in raw_str.strip().split('  '))

方法2:正则通用实现(适配任意单词间隔长度)

如果单词之间的空格数量不固定(可能是2个、3个甚至更多),可以用正则按「2个及以上连续空格」做拆分,兼容性更强:

import re

raw_str = 'I  n e e d   t o    d e l e t e  t h e  e x t r a  w h i t e s p a c e  b e t w e e n  c h a r a c t e r s'
normalized_str = ' '.join(part.replace(' ', '') for part in re.split(r'\s{2,}', raw_str.strip()))
print(normalized_str)
# 输出:I need to delete the extra whitespace between characters
处理逻辑说明

整个处理流程分三步,适配绝大多数同类字符打散的空格冗余场景:

  1. 预处理:先去除字符串首尾的多余空白
  2. 拆分:以连续2个及以上的空格为分隔符,把字符串拆成多个片段,每个片段对应一个被单空格打散的完整单词
  3. 还原拼接:每个片段删除内部所有单空格得到正确单词,最后用单个空格把所有单词拼接成规范字符串

内容的提问来源于stack exchange,提问作者Romero-Reina Juan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 09:57:27