正则表达式如何去掉特定标签以及标签里面的内容

2024-11-27 16:34:59
推荐回答(2个)
回答1:

  解决办法就是加 \b 断言。
  <(?!((/?\s?li\b)|(/?\s?ul)|(/?\s?a\b)|(/?\s?img\b)|(/?\s?br\b)|(/?\s?span\b)|(/?\s?b\b)))[^>]+>
  private static string RemoveSpecifyHtml(string ctx) {
  string[] holdTags = { "a", "img", "br", "strong", "b", "span", "li" };//保留的 tag
  // <(?!((/?\s?li\b)|(/?\s?ul\b)|(/?\s?a\b)|(/?\s?img\b)|(/?\s?br\b)|(/?\s?span\b)|(/?\s?b\b)))[^>]+>
  string regStr = string.Format(@"<(?!((/?\s?{0})))[^>]+>", string.Join(@"\b)|(/?\s?", holdTags));
  Regex reg = new Regex(regStr, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);
  return reg.Replace(ctx, "");
  }

回答2:

直接使用innerHTML之类的方法,不可以吗?还是这是一段字符来的?

var a = ' \
            xxxxx \
            ooooo \
        ';

        //alert(a.replace(/<\/?td[^>]*>/gim,"").replace());
        alert(a.match(/<\/span>(.*)<\/td>/im)[1]);