我需要编写一个Regex来捕获特定HTML标记内的内容:
<span class="sentences">CAPTURE HERE</span>
所以我在C#写道:
<span class=\"sentence\">((.|\\\\s)*?)</span>
我遇到的问题并且我不确定如何解决它,该范围内还有另一个span类,也以&lt; / span&gt;结尾因此结束了对错误结束标记的捕获。如何在Regex中编写一个条件,检查是否有另一个不是“句子”的span类,如果有,则捕获应该在下一个&lt; / span&gt;上结束?
Regex上的输入字符串。
<span class="sentence">O que a história da escravidão tem a dizer sobre <span class="CharOverride-15">experiências religiosas</span>?</span><span class="sentence"> Só silêncios,</span>
我想要理想的捕获:
O que a história da escravidão tem a dizer sobre <span class="CharOverride-15">experiências religiosas</span>? Só silêncios,
答案 0 :(得分:1)
不要使用Regex来解析html。使用真正的html解析器,如HtmlAgilityPack
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlstring);
var span = doc.DocumentNode.SelectSingleNode("//span[@class='sentence']");
var text = span.InnerText;
var html = span.InnerHtml;
答案 1 :(得分:0)