从字符串中删除 html 标记
Posted
技术标签:
【中文标题】从字符串中删除 html 标记【英文标题】:Remove html markup from string 【发布时间】:2017-09-06 19:21:48 【问题描述】:我正在从数据库中读取一个字段并在 GridView 中显示,并且在该字段中它包含 <br/>
文本中的标签。所以我试图从代码中删除这些,但是当我检查e.Row.Cells[index].Text
的值时,它不包含<br/>
,而是有;br/>
。
所以我尝试创建一个函数来删除任何以<
开头并以>
结尾或以&
开头并以;
结尾的子字符串。该代码删除了<>
,但仍显示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);
如何删除&lt;br/&gt;
标签?
【问题讨论】:
Obligatory link关于为什么ṫ̨̗̺̭̮̞̗̜̮̗̙̫̺̖̭̯͊ͨ̌͒̍͘͘͟͝ḩ̸̴͓̩̙͙̻̗͔̞̘̟̩̯͋͑͐ͨͭ͒ͯ̓͐̇ͥ͢҉̴̧ͨͭ͒ͯ̓͐̇ͥ͢҉̨̳̜̤͍͖t̵̳̳͕͉͋̓͐ͦͬ̈̚是一个坏主意。另外,您确定是;br/&gt;
而不是&lt;br/&gt;
?
@ThomasAyoub 是的,你是对的,它是&lt;br/&gt;
。所以如果我不使用正则表达式,我应该使用什么?
【参考方案1】:
由于这是一个文字字符串,你(sh|c)只能使用String.Replace()
:
static string RemoveHTMLNewLines(string text)
return text.Replace("<br/>", string.Empty);
如果需要,或者替换为Environment.NewLine
。
【讨论】:
【参考方案2】:-
取消实体化字符串。
然后使用正则表达式来查找和删除预期的标签。
或者
如果你有足够的时间学习和使用,那就使用HtmlAgilityPack包吧。
About HtmlAgilityPack
Nuget Package Link
【讨论】:
【参考方案3】:不管这个问题,我很好奇这是什么:
【讨论】:
以上是关于从字符串中删除 html 标记的主要内容,如果未能解决你的问题,请参考以下文章