如何在 C# 代码中去除除 <br> 之外的所有 html 标签?

Posted

技术标签:

【中文标题】如何在 C# 代码中去除除 <br> 之外的所有 html 标签?【英文标题】:How can I strip all html tags except <br> in C# code? 【发布时间】: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 标签。它用于多行文本框,用户可以更改颜色、重量等。但我想在渲染时删除它并留下换行符。 Stop processing html with regexes! 停止说“停止使用正则表达式处理html!”!对于此类琐碎的任务,使用正则表达式比使用成熟的 XML/HTML 解析器要好得多。 【参考方案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);

【讨论】:

以上是关于如何在 C# 代码中去除除 <br> 之外的所有 html 标签?的主要内容,如果未能解决你的问题,请参考以下文章

java去除字符串的html标签

动态字符串格式 C#

去除除链接之外的所有 HTML 标签

自动重复调用函数,去除属性

用 <p> 段落和 <br /> 标签替换换行符

请问C#中有没有判断数组元素重复,或如何去除重复呀?