You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式技巧:如何保留<a>标签并删除其余所有HTML标签?

用单个正则就能搞定你的需求!

嘿,完全可以用单个正则表达式实现删除除<a></a>之外的所有HTML标签,不用写多个正则~

核心思路

我们需要匹配所有HTML标签,但用负向预查排除掉<a>开始标签和</a>结束标签,然后把匹配到的标签替换为空字符串就行。

具体正则与代码示例

这里给你一个适用于你场景的正则:

/<(?!\/?a\b)[^>]+>/g

拆解一下这个正则的逻辑:

  • <:匹配HTML标签的左尖括号
  • (?!\/?a\b):负向预查,意思是“接下来的内容不能是可选的/(对应结束标签)加上a单词边界”,这样就排除了<a和</a开头的标签
  • [^>]+:匹配除右尖括号>之外的所有字符,也就是标签内部的内容(比如属性、标签名)
  • >:匹配HTML标签的右尖括号
  • /g:全局修饰符,确保替换所有符合条件的标签

以JavaScript为例,使用方式如下:

const originalStr = 'Some words <img src="www.test.com">. Next words <a href="www.abc.com">abc</a>';
const processedStr = originalStr.replace(/<(?!\/?a\b)[^>]+>/g, '');
console.log(processedStr); 
// 输出结果:"Some words. Next words <a href="www.abc.com">abc</a>"

小提醒

如果你的实际场景中存在更复杂的HTML(比如<a>标签嵌套其他标签、标签内有换行等),正则处理可能会有局限性,但针对你给出的示例字符串,这个正则完全够用啦~

内容的提问来源于stack exchange,提问作者Shoshin Nikita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:44:05