从网页或 Word 复制的文字格式很乱怎么清理?

从网页复制一段话粘进文档,字体颜色、行距、背景色全跟过来了;从 PDF 复制,每行结尾都硬生生断开。原因是你复制的从来不只是文字——剪贴板里同时装着一份带样式的 HTML。清理粘贴格式,就是把这份 HTML 里的文字取出来、样式全部丢掉。本站的 富文本清理 专门做这件事,全程在浏览器本地完成、内容不上传。

  • 剪贴板同时存了纯文本和带样式的 HTML,粘贴时目标软件优先取后者,格式就跟过来了。
  • 富文本清理处理「从别处复制来的内容」,去除 HTML 标签处理「你手上的一段 HTML 源码」。
  • 按来源选预设最省事:网页、Word、PDF、微信、代码各有一套默认参数。
  • PDF 复制后每行断开,是因为换行是排版产生的,需要开启断行合并才能还原成段落。
  • 默认只删格式不改文字:引号、emoji、编号这类会改动内容的开关都要你自己勾。

粘过来的到底是什么:剪贴板里其实存了两份

你按下复制时,来源软件往剪贴板里放的通常不止一份数据:一份是纯文本,另一份是带完整样式的 HTML 片段。粘贴时由目标软件决定取哪一份,富文本编辑器默认取后者,于是字体、颜色、行距、表格边框一起跟了过来。

一句话定义:清理粘贴格式,是把剪贴板里那份带样式的 HTML 当作字符串解析、只取出其中的文字,并顺手修掉排版遗留的断行、空行与隐形字符。

为什么「粘贴为纯文本」有时也不干净

按快捷键粘为纯文本,取的是剪贴板里那份纯文本。问题在于这份纯文本本身可能就不干净:从 PDF 复制的每行末尾带硬换行,从网页复制的带着不间断空格和零宽字符,从 Word 复制的项目符号变成了一堆孤立的圆点。样式确实没了,但文字本身仍然需要收拾。

清理不是「删掉所有特殊字符」

粗暴地把非常见字符全删掉,会连带毁掉正常内容——中文标点、数学符号、emoji 都可能是正文的一部分。合理的做法是分类处理:格式类的隐形字符删掉,排版造成的断行合并回去,而可见文字一个不动。这也是这几个工具的默认策略:会改动可见内容的开关默认全关,需要时由你显式打开。

三个清理工具分别解决什么问题

三个页面看着相似,入口和目标完全不同。选错了不会出错,但会绕远路。

工具输入是什么解决什么
富文本清理从别处复制来的内容去样式、合断行、收空行、清隐形字符
去除 HTML 标签一段 HTML 源码文本取正文、列标签台账、提页面元信息、做安全体检
去空行空格已经是纯文本的内容空行策略、行内空白、汉字间空格、隐形字符

富文本清理:面向「我刚复制了一段东西」

它读的是剪贴板里那份 HTML,把标签当字符串扫一遍取出文字,然后按固定顺序跑一条流水线:先处理不可见字符,再处理项目符号和自动编号,然后合并断行,接着收敛空行,最后做字符规范。这个顺序本身就是正确性的一部分——先合并断行再清不可见字符,行尾藏着的零宽字符会让合并判断失效。

去除 HTML 标签:面向「我手上有一段源码」

除了取正文,它还会告诉你这段 HTML 里有哪些标签各出现多少次、页面标题和描述是什么,并做一次安全体检。它有一条明确的实现约束:不用正则去标签。replace(/<[^>]*>/g, '') 这类写法在遇到属性里带尖括号、注释里带标签、未闭合的 script 时都会翻车,所以这里用的是逐字符的词法扫描。它还保证幂等——同一段内容清理两次和清理一次结果完全一样。

去空行空格:面向「内容对了,就是排版脏」

最轻量的一个。可以删掉全部空行,也可以把连续空行合并成保留一到多个;行首行尾的多余空格、中文字之间被输入法带出来的空格都能清掉。它有条硬规矩:只删空白与格式类不可见字符,绝不改动任何可见文字,emoji 内部用于组合的连接符也会原样保留——否则一家四口的 emoji 会碎成几个单独的小人。

按来源选预设:网页、Word、PDF、微信、代码

与其逐个开关去调,不如按内容来源选预设——每种来源带来的问题是有规律的,预设就是针对这些规律配好的一组参数。

网页复制与微信 / 公众号

这两类的典型问题是样式冗余和不间断空格。网页排版大量使用 &nbsp; 来控制间距,复制出来是一串删不掉的「空格」;公众号编辑器还会插入用于控制行距的空段落。对应预设会把不间断空格转成普通空格再统一收敛空白,同时把多余的空段落压掉。

Word / WPS

Word 复制过来的主要麻烦是自动编号和项目符号。文档里看到的「1. 2. 3.」很多时候是 Word 自动生成的列表编号,复制成文本后可能变成孤立的数字,也可能整个丢失;项目符号则常变成一串圆点或方块字符。预设会把这类符号识别出来统一处理,你也可以选择保留成 Markdown 风格的减号列表。

代码 / 终端

这类内容的要求正好相反:缩进和空行都是有意义的,绝不能收敛。对应预设会关掉大部分空白处理,只清理隐形字符和行尾多余空格。从网页教程里复制命令行时特别要注意——有些站点会在代码块里插入零宽字符防复制,粘到终端里就是一条莫名其妙报错的命令,用这个预设过一遍能解决。

只要纯文本:最狠的那一档

如果你不在乎任何格式,只想要一堆干净的字,可以直接用最激进的预设,它会把能删的都删掉。代价是列表结构、段落层次也会一并丢失,适合把内容喂给别的处理流程,不适合直接交付给读者阅读。

PDF 复制后每行都断开怎么合并成段落

从 PDF 复制的文字每行末尾都断开,是因为 PDF 里根本没有「段落」这个概念——它记录的是每个字在页面上的坐标,换行是排版按版面宽度切出来的结果,复制时只能按视觉行还原成硬换行。

合并断行:判断哪个换行是真的

解决办法是开启断行合并,让工具判断每个换行是排版造成的还是真正的段落结束。判断依据包括上一行是否以句末标点结尾、下一行是否以缩进或项目符号开头、行长是否接近版面宽度等。选择「PDF / 论文」预设会自动开启这项处理。

这类判断是启发式的,不可能百分之百准。诗歌、代码、表格这类本来就该逐行断开的内容,合并后反而会乱——遇到这些内容应该关掉合并。长文清理完快速扫一眼段落分布,比事后在文档里逐段修要省事得多。

英文文献的连字符断词

英文排版为了对齐,会把一个单词从中间断开、行尾加连字符。复制出来就是 inter- 加换行加 national。合并断行时会识别这种情况,把词接回去而不是留下一个突兀的连字符。中文文献没有这个问题,但从双栏排版的 PDF 里复制时,左右栏的文字可能交错在一起,那属于复制阶段就错了,任何清理工具都救不回来,只能换个 PDF 阅读器重新复制。

页眉页脚与行号

学术 PDF 每页都有页眉、页码,有些还带行号,复制整章时它们会均匀地混进正文。清理工具不会自动删除这些内容——它无法区分「每页重复出现的页眉」和「正文里反复出现的术语」。这类内容需要清理后用 批量查找替换 按规律批量删除。

看不见的字符:零宽、不间断空格与安全边界

清理粘贴内容时最容易被忽略的,是那些完全不显示却真实存在的字符。它们不影响阅读,却会让字数对不上、搜索匹配不到、表单校验失败。

四类常见的隐形字符

  • 不间断空格:网页 &nbsp; 的产物,看着是空格但常规空白规则匹配不到。
  • 零宽空格与零宽连接符:完全不占宽度,用于控制换行位置或组合 emoji,也常被用来做防复制。
  • 软连字符:只在需要断词时才显示的连字符,平时看不见。
  • 字节序标记:文件开头的编码标记,粘贴时可能跟进文本第一个字符前面。

这些字符是「本地看着没超字、提交时说超长」和「明明一模一样却搜不到」的常见元凶。清理工具会把它们分类识别、单独报数,你能清楚看到到底混进来多少个。有一个例外必须保留:emoji 内部用于组合的零宽连接符——删掉它,组合 emoji 就会碎成一堆单独的符号。

为什么不做统一的字符归一化

有一种看似省事的做法是对全文做 Unicode 兼容分解归一化,一次性把全角转半角、把各种变体字符统一。这几个工具刻意不这么做,因为它会顺手改掉一堆你没打算改的东西:全角括号变半角、上下标数字变普通数字、某些汉字变体被替换。需要做全角半角转换时,用 全角半角转换 显式地做,比让清理工具悄悄顺手改掉更可控。

安全边界:输出永远是纯文本

处理来源不明的 HTML 有实际风险。这几个工具的做法是:全程把 HTML 当字符串做词法扫描,不构建 DOM、不渲染、输出永远是纯文本。script、style、noscript、title、textarea 与注释内部的内容一个字符都不会进入结果,即使标签没闭合也会一直丢到末尾。所以从任何地方复制来的内容都可以放心粘进去——最坏情况是少输出一点内容,不会有任何东西被执行。

常见问题

为什么从网页复制的文字会带着颜色和字体
因为复制时系统往剪贴板里放了两份数据:一份纯文本,一份带完整样式的 HTML 片段。Word、微信、邮件客户端这类富文本编辑器默认取后者,所以字体、颜色、行距、背景色一起跟了过来。用「选择性粘贴 / 只保留文本」或按快捷键粘为纯文本能解决大部分情况,但从某些来源复制时纯文本那一份本身就带着奇怪的换行和空格,这时才需要专门的清理工具。
富文本清理和去除 HTML 标签有什么区别
入口不同。富文本清理面向「我从别处复制了一段内容」,它读的是剪贴板里那份 HTML,同时还会处理断行、空行、项目符号这些排版遗留问题。去除 HTML 标签面向「我手上有一段 HTML 源码文本」,它额外提取网页标题、描述这类页面元信息,并做一次安全体检。日常粘贴用前者,处理爬下来的源码或邮件模板用后者。
清理会不会把我的正文内容也删掉
默认不会。工具的默认行为是「只删格式,不改文字」——会改动可见内容的选项(把弯引号换成直引号、去掉 emoji、去掉自动编号、去掉项目符号)默认全部关闭,只有你显式勾选或选了带这些设置的预设时才生效。而且每一项处理了多少处都会记在清理台账里,改了什么一目了然。
脚本和样式里的内容会被清理掉吗,安全吗
会被完整丢弃。script、style、noscript、title、textarea 标签内部的内容以及 HTML 注释,一个字符都不会进入结果;即使这些标签没有正确闭合,也会一直丢到文档末尾——宁可少输出一点,也不能把一段 JS 代码倒进你的结果里。另外整个处理过程不构建 DOM、不渲染 HTML,输出永远是纯文本,所以粘贴来源不明的内容也不会在页面里执行任何东西。
从 PDF 复制的文字每行都断开怎么办
开启断行合并。PDF 里的换行是排版时按版面宽度切出来的,并不代表段落结束,所以复制出来每行末尾都有一个硬换行。选择「PDF / 论文」预设会自动开启合并,把属于同一段的行接回去,同时保留真正的段落分隔。英文文献里行尾的连字符断词也会一并处理。合并规则难免有判断不准的地方,长文建议清理后快速扫一眼段落分布。
清理之后还有很多空行怎么删
用去空行空格。它专门处理空白:可以删除全部空行,也可以把连续多个空行合并成保留若干个;同时能清理行首行尾多余空格、汉字之间的多余空格,以及看不见的零宽字符。富文本清理里也带了空行收敛,但如果你的原文本身就是纯文本、只是空行太多,直接用去空行空格更直接。
为什么有些空格删不掉
那多半不是普通空格,而是不间断空格。网页里大量使用的 &nbsp; 解出来是一个特殊字符,看着和空格一样,但用常规的空白清理规则匹配不到。工具会把它单独识别出来并可选转换成普通空格,转换后就能被正常清理了。同类的还有零宽空格、软连字符、字节序标记,它们完全不显示但确实占长度,会让字数统计和表单校验出现莫名其妙的偏差。
清理时我的内容会被上传吗
不会。三个清理工具都是纯字符串处理,在你的浏览器里完成,不发任何网络请求、不写入本地存储。未发表的稿件、公司内部文档、含个人信息的内容都可以直接粘进去,关掉页面内容即消失。

遇到格式乱的粘贴内容,别在目标文档里一点点手动改——先过一遍 富文本清理,按来源选好预设,看一眼台账确认改了什么再复制走。手上是一段 HTML 源码就用 去除 HTML 标签,只是空行太多就用 去空行空格,三个页面都在浏览器本地处理、内容不上传。

参考资料

延伸阅读

本文由「小鹿tools」整理,更新于 2026-08。如发现信息过期或有误,欢迎反馈。