从网页复制的名单怎么清理?零宽字符与全角

一、三类脏数据,来源不同

问题现象常见来源
零宽字符看着一样的两行,「去重」却没去掉网页排版、复制粘贴、导出软件
全角/半角混排名单里 ABCABC 并存,排序对不上中文输入法、旧系统导出
重复行同一人出现多次,只差空格多次复制、合并多个表

这三类问题的处理顺序有讲究,先做哪一步结果不同。

二、第 1 步:先删零宽字符

零宽字符是宽度为 0 的 Unicode 字符,肉眼完全看不见。以「张[ZWSP]三[LRM]李[ZWSP]四[ZWSP]」为例(方括号里就是那几个看不见的字符):实际有 8 个字符,其中 4 个是零宽字符(3 个 ZWSP 加 1 个 LRM),清理后只剩「张三李四」4 个字符——一半是看不见的

常见的零宽字符有近 20 种,工程里常遇到的是:

名称码位来源
ZWSP 零宽空格U+200B网页换行处最常见
ZWNJ / ZWJU+200C / U+200D排版连接控制
LRM / RLMU+200E / U+200F双向文本方向标记
BOMU+FEFF文件头,粘到文本里就藏起来了

为什么它最该先删:零宽字符夹在两个字符中间时,张三张[ZWSP]三 在屏幕上看起来完全一样,去重、VLOOKUP、匹配全都会失败——这类问题排查起来最费时间,先清掉能省掉后面一大半麻烦。

工具会标出每个零宽字符的位置(第几行、第几列、属于哪种),清理前后各给一份文本,方便你先确认再粘贴回去。

三、第 2 步:统一全角与半角

全角字符占两个字符宽,主要在中文输入法下产生。转换规则按类型区分:

  • 字母数字ABC123ABC123(6 个全角字符全部转换)
  • 部分标点,。! 转成半角时,逗号和感叹号会转换,中文句号「。」保留——它是中文标点,不属于需要转的半角对应字符

所以工具报的转换数量不总是等于字符总数(6 个字符里转了 5 个),这是正常的。

什么时候需要转:Excel 里做匹配、写代码处理数据、按字母排序时;什么时候不用转:纯中文姓名(姓名用全角本就正常)、文章正文。

顺带一提:全角数字虽然显示正常,但在 Excel 里会被当成文本,参与计算会出错——这是「公式算不出结果」的常见原因之一。

四、第 3 步:去重

去重有两种口径,选错会出问题:

选项效果
保持原序去重删除重复项,保留首次出现位置,顺序不变
忽略大小写去重AppleappleAPPLE 视为同一个

实测:张三 / 李四 / 张三 / 王五 / lisi / 李四 6 行,原序去重后剩 4 行(删除 2 行);而 苹果 / 苹果 / Apple / apple / 苹果 5 行,勾选忽略大小写后剩 2 行(Apple 与 apple 视作同一条)。

注意:忽略大小写只影响英文字母。中文没有大小写概念,张三张三 是两个不同的人名(虽然罕见),工具不会合并。

五、第 4 步:排序(按需)

排序方式有原序、升序、降序、按长度、按数值。踩坑最多的是数字排序2101 按文本排会得到 1, 10, 2,按数值排才是 1, 2, 10。名单里有编号列时,务必选数值排序。

中英文混合时按 Unicode 顺序排列,中文会排在英文之后——要做严格的中文排序(拼音序)得用专门的拼音排序工具。

六、单次上限与隐私

单次上限 20 万字符,几千行的名单、关键词列表都够用。所有处理都在浏览器本地完成,名单不上传服务器——处理客户名单、手机号时这点比较重要。

七、直接算

文本去重与排序:保持原序去重、忽略大小写、五种排序方式

全角半角转换:字母数字与标点分别转换,方向可选

零宽字符清理:标出每个不可见字符的位置再清理

文本处理工具:去空行、批量替换、大小写转换等批量操作

本站文章为个人使用经验的原创整理,除已注明来源的引用外均为本人撰写。文中涉及的软件名称、商标、截图等归各自权利人所有,引用仅用于说明与交流。如认为本站内容侵犯了你的合法权益,请通过「关于本站」页面的联系方式告知,核实后将及时更正或删除。