推荐用<[^>]*>而非<.*?>删除HTML标签,因其靠否定字符集匹配“尖括号内不含>”的标签,不跨行、不误删script/style中或引号内的>,更安全可靠。

为什么]*>比<.></.>更安全
很多人一上来就写<.></.>,觉得“非贪婪”就能搞定。但它在 Sublime 里实际表现很脆弱:遇到换行就断、遇到引号内(比如<code>alt="A )会提前收尾、<code><!-- 注释 -->和<script></script>里的内容也照删不误。而]*>靠否定字符集锁定「尖括号内不能有>」这个 HTML 标签本质约束,不跨行、不误吞字符串里的,兼容性高得多。
怎么避免删掉<这类实体或破坏结构
正则删标签本身不处理 HTML 实体——<会被当普通文本留下,但&不会自动转成&。如果你需要解码,得额外走一步:html.unescape()(Python)或用 DOMParser(浏览器环境)。更重要的是:如果原始 HTML 含<script></script>或<style></style>块,里面的<div>也会被<code>]*>误删。应对方法只有两个:
- 手动折叠或删除这些块(Ctrl+Shift+P →
Fold Tags)再执行替换 - 先用
]*>[\s\S]*?匹配并跳过它们,再对剩余文本跑]*>
删完标签后文本粘连怎么办
纯删标签后,<p>标题</p>
<ul><li>项1</li></ul>会变成“标题项1”,中间没空格。这不是正则错了,而是它本就不负责语义排版。补救建议:
- 删标签后,再跑一次
\s+→(一个空格),把连续空白压成单空格 - 若要保段落感,先单独处理块级标签:把
<p>(.*?)</p><div class="aritcle_card flexRow"> <div class="artcardd flexRow"> <a class="aritcle_card_img" href="/xiazai/skill7761" title="Article To Html"><img src="https://img.php.cn/upload/skill/000/000/081/179168408018805.jpg" alt="Article To Html" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a href="/xiazai/skill7761" title="Article To Html">Article To Html</a> <p>文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。</p> </div> <a href="/xiazai/skill7761" title="Article To Html" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>替换成\n$1\n,再删其他标签 - 对邮件正文、爬虫结果这类真实数据,别硬刚正则——直接扔进
DOMParser或BeautifulSoup更省心
Sublime里真正能“一键”的操作链
所谓“一键”,其实是三步组合,缺一不可:
- Ctrl+H 打开替换面板
- 勾选
.*(正则模式),查找框填]*>,替换框留空 - 点
Replace All,然后立刻再查\s+→,最后Trim首尾空格
Ctrl+Shift+A去选标签内容再删——它对自闭合标签(<img alt="Sublime如何一键删除所有HTML标签?Sublime正则提取纯文本" >)、未闭合标签或含 JS 的 HTML 经常失效,容错率远低于正则。复杂点在于:HTML 不是纯文本,它是带上下文的结构化标记。正则只做字符串层面的擦除,它不知道哪段该删、哪段该留。所以每次用前,先快速扫一眼有没有<code><script></script>、CDATA 或注释——这些地方,宁可手动隔离,也别赌正则的“聪明”。


















