去除空行与空格
从 PDF、网页、Word 里复制出来的文字,往往夹着一堆看不见的东西:多余的空行、行尾的空格、全角空格、Tab、零宽字符、BOM。这页把这些清理规则列成一排开关,勾几条就同时跑几条,按从上到下的顺序依次处理,右边实时显示清掉了多少字符。
空行
空格
特殊空白
换行
那些看不见的字符
- 全角空格不是空格
- 中文输入法下按空格打出来的是全角空格
U+3000,宽度和一个汉字一样。它在正则里不被\s匹配(旧版 JS 引擎尤其如此),所以用常规的 trim 去不掉,很多「明明去过空格还是对不齐」的问题就出在这里。段首那两个缩进空格通常也是它。 - 零宽字符与 BOM
- 零宽空格
U+200B、零宽连接符U+200C/200D、字节序标记U+FEFF这些字符完全不显示,但会让字符串比较失败、让 JSON 解析报错、让 Excel 匹配不上。从网页复制的内容、某些工具导出的 CSV 里很常见。这一条专门清理它们——想反过来利用它们藏信息,看 零宽字符隐写。 - 不换行空格
U+00A0是 HTML 里 对应的字符,从网页复制文字时大量出现。它看着是空格,但在很多语言的 trim 和 split 里不算空白,拿去做数据匹配会莫名其妙对不上。- 智能合并是怎么判断的
- 从 PDF 里复制的段落常常每隔几十个字就被硬折一行。这一条会把上一行不以句末标点结尾(。!?.!?:;等)、且下一行不是空行、不是以列表符号或数字序号开头的两行接起来;中文之间直接相连,英文之间补一个空格。它不会碰真正的段落分隔(空行)和明显的列表项。
- 规则的执行顺序
- 按页面上从上到下的顺序依次执行:先处理空行,再处理空格,然后是特殊空白,最后才是换行合并。所以「去掉所有空行」和「全部合并成一行」同时勾选时,是先删空行再合并。如果想要别的顺序,分两次跑——点「用结果替换原文」就能接着处理。
- 相关工具
- 文本去重、文本行处理、文本截取与拼接、文本批量替换、中英文自动加空格、文本批量提取。