是sublime里最稳的单行html标签清除正则,它靠否定字符集匹配“以、以>结尾”的标签,避开属性值中的 ↩

用 ]*> 而不是 <.></.>
直接上结论:]*> 是 Sublime 里最稳的单行 HTML 标签清除正则。它靠否定字符集匹配「以 开头、中间不含 <code>>、以 > 结尾」的片段,天然避开 alt="A 这类属性值里的误匹配。
<.></.> 看似非贪婪,但在 Sublime 的 PCRE 引擎里默认不跨行,遇到换行就断;更危险的是,它会把 <script>console.log('<div>')</script> 里的字符串也当标签删掉——这不是 bug,是正则本质决定的。
- 勾选
.*按钮启用正则模式 - 查找框填
]*>,替换框留空 - 点
Replace All即可删除所有开始标签、结束标签、自闭合标签(如<img>、<br>
)
删完标签后文本粘连?先统一换行再压空格
纯删标签后,<p>标题</p>
<div>内容</div> 会变成“标题内容”,中间没空格也没换行。这不是正则错了,是语义被剥离后的自然结果。
- 先统一换行符:查找
(?:\r\n|\r|\n)+→ 替换为\n - 再处理块级标签语义:比如把
<p></p>替换为\n,把也替换为\n(注意顺序,避免嵌套干扰) - 最后清理多余空行:查找
^\s*$→ 替换为空(不是\n),能清掉带空格/制表符的“伪空行”
遇到 <script></script> 或 <style></style> 怎么办
]*> 不区分上下文,会照删 <script></script> 块内的伪标签,比如 alert('<div>') 里的 <code><div> 会被截断,导致 JS 代码损坏或匹配错乱。<ul>
<li>第一步:先用 <code>]*>[\s\S]*?\1>(勾选 .* 模式)把整块 <script></script> 和 <style></style> 替换为空
]*> 删剩余标签<!-- ... --> 或 CDATA,也得在第一步一并剔除,否则可能干扰后续匹配什么时候不该用 Sublime 正则删标签
当你面对爬虫抓取的微信公众号 HTML、邮件正文、或用户粘贴的富文本时,]*> 只是个临时止血贴。
- 嵌套不规范(如
<div><p>text</p></div>)会让正则漏删或错删 - 实体字符如
&、不会被还原,结果里全是乱码符号 - 超过 500KB 的 HTML 文件,Sublime 可能卡死或丢数据——它不是 HTML 解析器,只是文本编辑器
真正要鲁棒提取,得切到浏览器环境用 textContent,或 Python 里上 BeautifulSoup;Sublime 正则只适合你确认结构干净、量小、且只要“差不多能看”的场景。











