从字符串中删除html标记

问题描述:

我正在从数据库中读取字段并在GridView中显示,并在该字段中包含文本中的<br/>标记。所以我试图从代码中删除这些,但是当我检查e.Row.Cells[index].Text的值时,它不包含<br/>并且代之以具有;br/&gt;从字符串中删除html标记

所以,我试图创建一个功能,消除开始<>结束或&开始,以;结尾的字符串。该代码删除<>,但仍表现出br/

代码:

index = gv.Columns.HeaderIndex("Message"); 
if (index > 0) 
{ 
    string message = RemoveHTMLMarkup(e.Row.Cells[index].Text); 
    e.Row.Cells[index].Text = message; 
} 

static string RemoveHTMLMarkup(string text) 
{ 
     return Regex.Replace(Regex.Replace(text, "<.+?>", string.Empty), "&.+?;", string.Empty); 
} 

如何删除<br/>标签?

+2

[义务链接](http://stackoverflow.com/a/1732454/2307070)关于为什么ṫ̨̗̺̭̮̞̗̜̮̗̙̫̺̖̭̯͊ͨ̌͒̍͘͘͟͝h̸͓̩̙͙̻̗͔̞̘̟̩̯͋͑͐a̴̧ͨͭ͒ͯ̓͐̇ͥ͢҉̨̳̜̤͍͖t̵̳̳͕͉͋̓͐ͦͬ̈̚是一个坏主意。另外,你确定它是'br/>'而不是'< br/>'? –

+0

@ThomasAyoub是的,你是对的,它是'< br/>'。所以,如果我不使用正则表达式,那么我应该使用什么? – user123456789

由于这是一个字符串,你(SH | C)乌尔德只使用String.Replace()

static string RemoveHTMLNewLines(string text) 
{ 
    return text.Replace("&lt;br/&gt;", string.Empty); 
} 

或者,如果有需要更换Environment.NewLine

  1. 取消字符串。
  2. 然后使用正则表达式来查找和删除预期的标签。

或者

如果你有足够的时间去学习和使用,然后用HtmlAgilityPack包。

About HtmlAgilityPack

Nuget Package Link