悦省yueser.com

← 全部指南

合并多余空格:清理复制来的空隙

从网页、PDF 或表格复制来的文字,中间常夹着一串空格。合并之后内容一字不改,间距回到正常。

打开工具:合并多余空格

什么场景真的需要它

网页正文最容易这样:为了对齐,源代码里塞了多个空格,复制出来仍然保留。PDF 转文字时也会在词与词之间留下不规则空隙,一段话看起来松散、行宽忽长忽短,粘进不同软件后显示还不一样。

从表格复制的一列文字、聊天记录、OCR 结果也常有多余空白。把它贴进邮件、表单或文档之前先合并一次,排版会稳定很多,也不会因为空格数量不同而匹配失败。它不删文字,只调间隔。

规则与不管的部分

它把连续的空格和制表符合并成一个空格,其他字符一律不动。行首的缩进也会被压成一个空格而不是删掉,所以左侧仍然有一点空隙;想彻底左对齐,再接一步去除行首尾空格。全角空格宽度和汉字相当,视觉上很难分辨。

有几类空白它不处理:换行会保留,所以行的划分不变;全角空格 U+3000 不属于半角空格,不会被合并,中文之间的宽空隙看起来没变化;不换行空格 U+00A0 同样保留。遇到这些情况,先用全角转半角处理一遍。

替代方案与不该用的地方

代码不要用。缩进被压成一格后,Python 会直接报错,其他语言的可读性也全毁了,对齐全靠空格的地方更不能用。Markdown 行尾的两个空格表示强制换行,压缩后也会失效。

只想删行尾空格,用编辑器的正则替换更精准;想把全角空格也清理掉,先做全角转半角再合并;需要保留段落结构时,删空行和合并空格要分开做,别指望一步到位,按顺序处理更不容易出错。

常见问题

为什么中文之间的空隙没有变化?

那些空隙往往不是半角空格,而是全角空格 U+3000 或不换行空格 U+00A0,本工具只合并半角空格和制表符。先做一次全角转半角,再合并就能去掉。

行首的缩进为什么还留着一个空格?

因为它把连续空格压成一个,而不是整段删掉,行首的那个空格被保留了。需要完全左对齐时,再执行一次去除行首尾空格,左侧才会齐平。

换行也会被去掉吗?

不会。合并只作用于空格和制表符,换行原样保留,所以行数和分段结构都不变。要把多行合并成一行,请用多行转一行工具,两者作用不同。

相关工具:合并多余空格