正则表达式从HTML中删除所有跨距保留内部文本,因为它是

我正在寻找一个正则表达式,可以删除保留内部文本的所有跨度。 我的内部HTML中有这种跨度。

输入

格式正确的HTML

 First span    This is to test Regular expression    last Span text   

格式不正确:

  <%TPA_Enrollment_Options%> one of the convenient options below:  

预期输出 :第一个跨度这是测试正则表达式的最后一个跨度文本

我试过这个正则表达式 – ()|()|().

当我的HTML格式正确时,这是有效的,但在我的情况下,HTML的缩进是不正确的。

我没有使用正则表达式完全解析。 我只在内部html中执行此操作

你可以使用HtmlAgilityPack正确地完成它:

 public string getCleanHtml(string html) { var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(html); // return HtmlAgilityPack.HtmlEntity.DeEntitize(doc.DocumentNode.InnerText); // Use if you want to convert HTML entities to their literal view return doc.DocumentNode.InnerText; // if you want to keep HTML entities } 

然后

 var result = getCleanHtml(myInputHtml); 

这是输出:

在此处输入图像描述

如果你需要摆脱空格,你可以使用简单的String.Replace ,或者Regex.Replace或split / join方法,具体取决于你真正需要的。