如何在 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 【问题描述】:我要做的是删除除<br>
标签之外的所有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 <br> <br><br>text with many <br>"
,那是正确的,因为它保留了所有 并删除了其余的 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 标签?的主要内容,如果未能解决你的问题,请参考以下文章