0
<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,我如何正确解析with 类<tr>...</tr>之间的tablelistProvision所有存在?

我试过:<table.*?listProvision.*?>(?:.*?<tr.*?>(.*?)</tr>)+.*?</table>,但我不知道出了什么问题。永远不会有任何复杂的 html 被拉入这个正则表达式,所以不用担心。

4

2 回答 2

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>标签之间的所有数据。

于 2013-01-22T23:33:34.567 回答
0

1)RegexOptions.Singleline用于使点匹配换行符。(你的正则表达式已经工作了,我在这里只用单行标志就可以了)

2)访问 match.Groups["yourNamedCaptureGroup"].Captures您的捕获。

于 2013-01-23T00:06:44.863 回答