簡體   English   中英

C#:正則表達式匹配最近

[英]C#: Regex match closest

<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, 我如何正確地解析具有類listProvisiontable之間所有<tr>...</tr>存在

我試過了: <table.*?listProvision.*?>(?:.*?<tr.*?>(.*?)</tr>)+.*?</table> ,但是我不知道找出問題所在。 永遠不會有任何復雜的html放入此正則表達式中,因此不必擔心。

這是如何使用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)使用RegexOptions.Singleline 使點與換行符匹配。 (您的正則表達式已經可以使用了,我只使用單行標志就可以在這里使用它了)

2) 訪問 match.Groups["yourNamedCaptureGroup"].Captures為您的捕獲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM