我想从string中删除所有html标签。我可以使用REGX来实现这一点。
但在字符串内部,如果它包含角括号内的数字< 100>它不应该删除它。
var withHtml = "<p>hello <b>there<1234></b></p>";
var withoutHtml = Regex.Replace(withHtml, "\\<[^\\>]*\\>", string.Empty);
结果:你好
但需要输出: 你好1234
答案 0 :(得分:0)
不确定是否可以在一个正则表达式中执行此操作,或者正则表达式正如其他人所建议的那样正确。几乎可以让你获得的简单改进是:
Regex.Replace(withHtml, "\\<[^\\>0-9]*\\>", string.Empty);
给那里&#34;你好&lt; 1234&gt;&#34;然后,您只需要更换所有有角度的支架。
答案 1 :(得分:0)
您的HTML示例无效HTML,因为它包含非HTML标记。我想你想要编码的尖括号。
我认为正则表达式不适合HTML解析。我建议使用HTML Agility Pack之类的HTML解析器来执行此操作。
以下是一个例子:
var withHtml = "<p>hello <b>there<1234></b></p>";
var document = new HtmlDocument();
document.LoadHtml(withHtml);
var withoutHtml = HtmlEntity.DeEntitize(document.DocumentNode.InnerText);
只需添加HtmlAgilityPack NuGet包和对System.Xml的引用即可使其正常工作。