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

HtmlAgilityPackを使用して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 に答える