C#:正则表达式匹配最接近

本文关键字:最接近 正则表达式 | 更新日期: 2023-09-27 17:55:08

<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,我如何使用类 listProvision 正确解析table之间的所有<tr>...</tr>存在

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

C#:正则表达式匹配最接近

下面是如何使用 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以进行捕获。