文本处理工具箱:从正则到繁简转换的 30 款
文本是每天都在碰的,工具却常常是临搜的
先讲收藏理由。文本处理是少有的"人人都用、人人只记得一两个工具"的品类:复制粘贴时顺手搜个在线工具,搜到的多半是带广告、不知道把内容传去哪的小站。其实站内文本家族已经攒了五十来款,匹配、对比、大小写、全角半角、繁简、清洗、排版、命名、数字转换各有归属。这篇按用途过一遍,常用老面孔一笔带过,重点介绍平时想不起来的那批——下次再遇到"这文本不对劲",先回这里查。
正则四件套:测试、生成、调试、替换
正则的老问题是"写的时候猜、用的时候慌"。正则表达式测试是老面孔,实时高亮命中,够用。补位的三款值得认识:正则生成器不要求你会写——选"数字+字母组合"“匹配邮箱"这类描述,它反向拼出表达式并解释每一段;正则调试器解决"匹配结果和我想的不一样”,把回溯过程一步一步摊开,贪婪匹配 (a+) 为什么会把整串吞掉,看一遍就懂;批量查找替换走文本替换,比编辑器里连点鼠标稳得多。
对比三档:哪里不同、谁改了、有多不同
最常用的是两方对比:把两份文本贴进文本对比,增删行直接高亮,合同改稿、配置前后核对一眼看清。进阶是文本三方对比——输入"原文 + 两个修改版",分别对原文做行级差异,还会专门标出双方都动过的冲突行。它的场景是真实合并:同事各改了一版,普通两方对比只能告诉你"这两版差别很大",三方对比直接告诉你"第 23 行你改了、他也改了,必须人工拍板"。第三档是文本相似度,基于编辑距离(增删改字符的最小次数)给出两段的接近程度,适合查重初筛、答案比对、报表里"这两个名称是不是同一个客户"这类模糊匹配。
字符级转换:大小写、全角半角、繁简、拼音
这一组处理的是"每个字符对不对"。大小写有大小写转换(全大写、全小写、词首大写)和句首大写——后者按句子分隔符只提句首字母,改英文摘要比逐词大写干净。全角半角是最阴险的坑:全角半角转换专治它,因为 138 这样的全角数字人眼看着是数字,正则和校验器眼里根本不是——手机号、身份证号校验失败、搜索"明明有却找不到",十有八九是这个原因。繁简转换用繁简体转换,常见词汇级映射;但一简对多繁的地方必须人工复核(“后"对"後"还是"后”、“发"对"發"还是"髮”),FAQ 里展开。汉字转拼音用拼音转换,有声调、无声调、首字母三种输出,做名单排序、席卡、给小孩认读都顺。想玩一点冷门的,文本倒置支持字符、单词、行三种倒序。
清洗与排版:从"粘贴进来乱糟糟"到能交稿
从网页复制带进来的不可见字符和乱缩进,空格格式化统一 Tab 与空格、去行尾空格、删空行;缩进深浅交给文本缩进,空格 Tab 互转。名单整理走行操作:排序、去重、过滤,终端里 sort | uniq 的活浏览器直接干。HTML 转成干净正文用HTML转纯文本,粘进邮件、编辑器不带标签。分隔符数据(逗号、竖线、Tab)转成表格用文本转表格,直接导出 Markdown 表格。至于去特殊字符、提邮箱手机号、按分隔符分割合并、词频统计这几件专职工作,站内早有对应的老牌工具在维护,本篇不重复堆目录,需要时在工具站文本分类下一搜就有。
命名、文案与数字转换
程序员专属一款:命名格式转换在 camelCase、PascalCase、snake_case、kebab-case 四种命名间互转,数据库字段映射到接口和类型定义时省掉一堆手误。做原型要占位文案,随机文本生成按段落出 Lorem Ipsum;要像样的中文文案,站内有按行业生成的占位文案生成器,更完整的自媒体发布流(排版、违禁词、口播时长自查)在《自媒体发布前三道关》里,两篇对照着用。数字类三款:中文数字转换做阿拉伯数字与中文数字互转,含财务大写(壹贰叁);开正式发票金额仍以人民币大写转换的专用规则为准;罗马数字转换双向可用,2026 年就是 MMXXVI。字数、字符数统计用老熟人字数统计。
常见问题
两方对比和三方对比怎么选?
只知道"这两份哪里不一样",两方对比足够。存在"共同祖先"的场景——原文和两个分头修改的版本——一定用三方对比:它会分别标出"你改的"“他改的”,并把双方都改过的行单独提示为冲突,这正是合并代码前需要人拍板的清单。
相似度评分能当语义判断用吗?
它是字面距离,不是语义理解。“今天天气很好"和"天气不错"字面差很多,意思却接近——这类工具适合查重初筛、同名录入核对、版本近似度判断,做"意思一样吗"的结论还得人工看。相似度接近 100% 而语义无关的情况基本不存在,反过来不行。
小结
按场景各记一件就够用:写不出正则找生成器,结果不对找调试器;改稿对比用两方、分叉合并用三方、近似判断用相似度;全角半角治校验失败,繁简互换防一简对多繁;粘贴乱用空格格式化,名单乱用行操作;字段名交给命名转换,发票金额交给人民币大写。这批工具全部在浏览器本地计算、文本不上传服务器——简历、合同、未发布的稿子,本来就不该经第三方服务器的手。