不能直接用正则“一键”安全删除所有html标签,因正则无法正确处理注释、脚本、cdata、自闭合标签及嵌套结构,易漏删、误删或卡死;可靠做法是分层处理:先剥离script/style内容,再清除标签,最后清理空白。

能删,但不能靠一条正则“一键”安全搞定所有 HTML 标签——尤其当文档含注释、脚本、CDATA、自闭合标签或嵌套结构时,正则会漏删、误删或卡死。真正可靠的做法是分层处理:先剥离脚本/样式内容,再清除标签,最后清理多余空白。
为什么 <.></.> 不能直接用
这个表达式看似简洁,实际问题一堆:
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
-
<.></.>会跨标签匹配,比如<div>hello</div>中的<div>hello</div>可能被当成一个整体,但遇到<script>console.log('<div>');</script>就彻底崩坏 - 它不识别 HTML 注释
<!-- ... -->,可能把-->当成标签结尾,导致替换错位 - 对
<br>、<img src="x">这类无闭合标签也容易漏掉末尾斜杠或引号干扰 - Sublime 默认
.不匹配换行符,除非勾选「.matches newline」,否则多行标签(如带缩进的<pre class="brush:php;toolbar:false;"></pre>)直接失效
]*> 是更稳妥的起点
这个写法限制了匹配范围:只找以 开头、紧接着非 <code>> 字符、以 > 结尾的片段,基本覆盖标准开始/结束/自闭合标签,且不会跨行乱吞。
- 查找:
]*> - 替换:留空
- 务必勾选右下角的
.*(启用正则)和.matches newline(让.能跨行) - 先按
Alt+Enter看Find All高亮是否全是标签——如果高亮里出现
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










