搜索html中指定的字符串,搜索范围排除a,img标签

求一正则表达式:搜索html中指定的字符串并替换成其它字符串,搜索范围排除a,img标签,如下图

img


所示,查找湿气两个字并替换成其它字,搜索时排除红圈中的湿气字样(不管整个a标签或img标签中有没有湿气这个词都不在搜索范围),其它内容不变,不能把a、img标签删除了。请高人帮指点下谢谢。

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

let str = `<p>查找湿气两个字 <img src="images/testing.jpg" alt="湿气" /> 查找湿气两个字 <a href="http://xxxxxx/" title="" target="_blank">查找湿气两个字</a> <span class="test">查找湿气两个字</span> 查找湿气两个字</p>
`;
var arr = [];
str = str.replace(/<img\s+[\S\s]*?>|<(a)\s+[\S\s]*?>[\S\s]*?<\/\1>/ig,function (s) {
    var r = "@_"+arr.length+"_@";
    arr.push(s);
    return r;
});
str = str.replace(/湿气/ig,"【替换】");
str = str.replace(/@_(\d+)_@/ig,function (s,a) {
    return arr[parseInt(a, 10)];
});
console.log(str);

img

思路:
1.获取搜索到的内容;
2.求子串删除a标签,img标签的内容;

1.首先获取到这一段html内容,将内容转换为字符串,这样就可以对字符串进行操作了。
2.用正则表达式获取a标签和是img标签,并且匹配你想要替换的它们中的文字,替换为“空”就可以了。

思路:
1.获取搜索到的内容;
2.删除a标签,img标签的内容;

内容.replace(/<(?!a|/a).*?>/g, "").replace(/<(?!img).*?>/g, "")

给你一个Javascript语言的例子

<script type=text/javascript> 
  var s ='<html> <body> <div>asdasd</div> <p>avbc<img src="xx"/>llll</p></body></html>';  
  var regex = /<\/?((?!img).)*?\/?>/g;  
  var result = s.replace(regex,"");
 alert(result);
</script>

是删除掉标记内的特定内容(例如”湿气“),而不是删除整个a标签和img 标签是吗?
还是说把含有特定内容的a和img 标签完全删除?

使用快速查询快捷键(快捷键有改的话,不同很正常)Ctrl+R找到后,替换为空格,或者删除就行

是想替换查找出来的字符串,

img


查找的时候不查找a、img整个标签的内容,不管里面有没有湿气这词都略掉,求一条正则表达式,谢谢。

这个简单