正则表达式从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方法,具体取决于你真正需要的。