<table class="listProvision" class="itable">
<tr>
<td class="whatever">some infos</td>
<td>some more infos</td>
<td>13908402</td>
<td>hello world</td>
</tr>
<tr>
<td class="whatever">some infos</td>
<td>some more infos</td>
<td id="num">13908402</td>
<td>hello world</td>
</tr>
</table>
鉴于以上示例HTML,如何正确解析<tr>...</tr>
与table
之间listProvision
的所有存在?
我试过:<table.*?listProvision.*?>(?:.*?<tr.*?>(.*?)</tr>)+.*?</table>
,但我无法弄清楚出了什么问题。永远不会有任何复杂的html进入这个正则表达式,所以不要担心。
答案 0 :(得分:2)
以下是如何使用Html Agility Pack
解析html字符串的示例HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
var rows = doc.DocumentNode
.SelectNodes("//table[@class='listProvision']/tr");
然后,您可以使用HtmlNode.InnerHtml
属性获取<tr>...</tr>
标记之间的所有数据。
答案 1 :(得分:0)
1)使用RegexOptions.Singleline
到make dot match newline.(你的正则表达式已经工作了,我只用单行标志就可以了here)
2)access match.Groups["yourNamedCaptureGroup"].Captures
用于捕获。