最稳方法是用]*>删除html标签,它匹配单行内不含>的标签,避免跨行误删;操作为ctrl+h→启正则→查]*>→替为空;对script/style需先反选或分步处理。

用 ]*> 删除 HTML 标签最稳
Sublime 没有“去标签”按钮,但]*>这个正则能覆盖 95% 的常规标签场景,包括<div>、<code><img src="">、<br>,且不会跨行误吞内容。
操作步骤:
- 按
Ctrl+H(Windows/Linux)或Cmd+H(macOS)打开替换面板 - 勾选
.*(启用正则模式) - 查找框填:
]*> - 替换框留空
- 点
Replace All
为什么不用 <.></.>?它在 Sublime 的 PCRE 引擎里对换行和引号内 > 处理脆弱。比如遇到 <div>\nHello</div> 或 click <span>me</span>,容易截断或漏删。
保留段落结构:先处理 <p></p> 再删其他标签
直接删光所有标签,文本会糊成一坨。想保留可读性,得让段落之间有换行。
推荐两步走:
- 先把
<p>.*?</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill5806" title="html-deploy"><img src="https://img.php.cn/upload/skill/000/000/081/179066538882434.jpg" alt="html-deploy" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="overflowclass">html-deploy</a> <p class="overflowclass">使用 htmlcode.fun 将 HTML 内容或文件部署到网页,适用于用户要求“部署到网页”“托管此 HTML”“生成此前端...的实时链接”等场景。</p> </div> <a rel="nofollow" href="/xiazai/skill5806" title="html-deploy" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>替换成\n$0\n(注意勾选.*和. matches newline),这样每个段落前后都加了换行 - 再用
]*>删掉所有剩余标签 - 最后查
\n\s*\n→\n\n,合并多余空行
\s 在 Sublime 默认匹配换行符,所以别直接用 \s+ 替换单空格,否则段落会被压平。
遇到 <script></script> 或 <style></style> 怎么办
]*> 不区分上下文,会把 <script>console.log('<div>')</script> 里的 <div> 也当标签删掉——这是正则的天然盲区。<p>安全做法只有两种:</p>
<ul>
<li>手动选中所有 <code><script>...</script> 和 <style>...</style> 区域,按 Ctrl+Shift+P 输入 Selection: Invert Selection,反选后再执行标签删除
]*>[\s\S]*?\1> 单独匹配并跳过(替换为空白占位符),再删其余标签,最后还原没有万能正则能理解 HTML 语法树,这点必须接受。
HTML 注释不能和标签一起删
<!-- comment --> 是独立语法结构,]*> 会把它错切成 <!-- 和 --> 两段,破坏注释完整性,甚至误删中间内容。
删注释得另起炉灶:
- 查找:
<!--[\s\S]*?-->(务必勾选. matches newline) - 替换为空
- 执行前先
Find All预览,确认没吞掉










