复制粘贴来的文本全是乱格式:批量清洗的 6 种套路

把 Excel 名单贴进系统报错、从 PDF 复制的段落每行结尾多出空格、收集表里同一人名出现三种写法——这些不是数据「脏」,而是不同软件对空白和字符的处理口径不同。下面 6 种套路覆盖日常九成的文本清洗需求。

一、按症状对号入座

  1. 重复行:问卷、订单导出里同一行出现多次。去重前先决定「保留第一次还是最后一次出现」,多数工具默认保留首次;
  2. 多余空行:从 Word/网页粘贴后段落间夹着成对空行。一次「删除空行」+ 一次「压缩连续空白」基本能还原干净结构;
  3. 行尾隐形字符:PDF 复制的文本常带不间断空格(U+00A0)和软回车,肉眼看不出来,但会让「查找替换」和程序比对全部失效。用「清理不可见字符」功能一键处理;
  4. 全角半角混乱:数字 123 与 123、逗号 ,与 , 混用,导入数据库必炸。统一转半角是入库前的标准动作;
  5. 大小写不一致:邮箱列表里 Zhang@X.com 与 zhang@x.com 会被当成两个用户。统一小写后再去重,重复数立刻现出原形;
  6. 首尾空格:手动录入最常见的污染源,「 张三」和「张三」匹配不上。所有清洗流程的最后一步都应该是 Trim。

二、推荐的处理顺序

顺序错了会白干。推荐流水线:先清理不可见字符 → 再统一大小写与全半角 → 删空行压缩空白 → 去重 → 最后 Trim 首尾。逻辑是:先把「长得不一样但其实相同」的东西归一化,去重才有意义;Trim 放最后是因为中间步骤可能产生新的首尾空格。

三、一个实例:整理 3000 行客户名单

原始数据:Excel 导出、两列、含 12% 重复行。处理过程:清理不可见字符后,肉眼没变化但程序比对成功率从 82% 升到 100%;邮箱统一小写后重复行从 360 行涨到 512 行——多出来的 152 行就是大小写不同造成的「假不重复」;去重、Trim 后得到 2948 行干净名单。整个过程 3 分钟,手工核对要一整天。

四、从手工清洗到固定流水线

同样的清洗每周都做一遍,就该把它固化。三步升级路径:第一次手工跑通顺序并记录每步用了什么功能;第二次把固定操作写成一页 SOP(顺序、参数、异常处理),交给同事也能跑出同样结果;频率再高就脚本化——一条命令串起「清理 → 归一化 → 去重 → Trim」。关键认知是:清洗的价值在可复现。同样一批数据两次清洗结果不一致,比脏数据本身更可怕,因为它意味着下游统计对不上账。保留原始文件、记录每一步操作,这两件事的成本只有几分钟,却能在三个月后对不上数时救你一命。

🧹 文本清洗:不可见字符、空白、格式一键处理;配套文本比较可逐行核对清洗前后差异,确认没误删。

常见问题

问:清洗会破坏原文吗?
只删「零宽度字符、控制字符、多余空白」这类无语义内容,文字本身不动。稳妥起见先留一份原始副本,清洗后用文本比较工具 diff 一遍。

问:全角转半角会把英文文章转坏吗?
英文本身是半角,不受影响。受影响的只有全角数字、字母和标点——中文排版里刻意用全角标点是合理的,按需选择只转数字字母还是全部转换。