【问题标题】:How can I strip all html tags except <br> in C# code?如何在 C# 代码中去除除 <br> 之外的所有 html 标签?
【发布时间】:2013-06-26 07:50:22
【问题描述】:

我要做的是删除除&lt;br&gt;标签之外的所有html标签。

我做了一个例子:

public string Strip(string text)
{
    return Regex.Replace(text, @”<(.|\n)*?>”, string.Empty);
}

但这一个删除了所有内容。

感谢任何形式的帮助。

【问题讨论】:

  • @speti43 你是什么意思?
  • 所以如果你有一个完整的 html 文档(有 150 个 br 标签),你想删除所有内容只得到 150*
    作为输出?
  • 它是一个只有纯文本的字符串,我想保留
    标签并删除所有其他 html 标签。它用于多行文本框,用户可以更改颜色、重量等。但我想在渲染时删除它并留下换行符。
  • 停止说“停止使用正则表达式处理html!”!对于此类琐碎的任务,使用正则表达式比使用成熟的 XML/HTML 解析器要好得多。

标签: c# html regex


【解决方案1】:

试试这个正则表达式

return Regex.Replace(text, @”<(?!br[\x20/>])[^<>]+>”, string.Empty);

但我认为 html 解析器可能更适合这些任务。

【讨论】:

  • 我已经用我的文本尝试了这个,但它不起作用。“你的 html


    文本与许多
    ” 它只是产生相同的文本.
  • 如果您的字符串是"Your html &lt;br&gt; &lt;br&gt;&lt;br&gt;text with many &lt;br&gt;",那是正确的,因为它保留了所有
    并删除了其余的 html 标签。 ,并且由于您的字符串没有任何其他 html 标记,因此它会生成相同的文本。
  • 我想他也想删除包括文本在内的所有内容。在那种情况下,我的建议没有用。
【解决方案2】:

用于删除字符串中的 HTML 标记的正则表达式,除了 'br' 和 'p' 选项卡。 试试下面的正则表达式

Regex.Replace(strText,@"<(?!br[\x20/>])[^<>]+>", String.Empty);

【讨论】:

    【解决方案3】:

    删除除“br”和“p”标签之外的任何html标签。用这个

    Regex.Replace(strText,@"<(?!br[\x20/>])[^<>]+>", String.Empty);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多