0

我正在尝试解析其中包含表格行的 html 页面。我需要获取表格行中的所有表格单元格。

这是我尝试解析的 html 示例:

<tr style="font-size:8pt;">
    <TD style="font-size:8pt;">1545644656</TD>
    <TD style="font-size:8pt;">Billy</TD>
    <TD style="font-size:8pt;">Johnson</TD>
    <TD style="font-size:8pt;">DEF</TD>

        <TD style="font-size:8pt;"></TD>
        <TD style="font-size:8pt;">1134 Main St</TD>
        <TD style="font-size:8pt;"></TD>
        <TD style="font-size:8pt;">AnyTown</TD>
        <TD style="font-size:8pt;">PA</TD>
        <TD style="font-size:8pt;">05405</TD>

</TR>

这是我用来获取 tr start 和 tr end 之间所有内容的正则表达式

Regex exp = new Regex("<tr style=\"font-size:8pt;\">(.*?)</TR>", RegexOptions.IgnoreCase | RegexOptions.Multiline);

然后我正在做一个 foreach 循环来循环我所有的比赛(会有多行)

foreach (Match mtch in exp.Matches(browser.Html))

但它不匹配任何东西。在他们添加新行(\n)之前,我在网站上使用了完全相同的代码,当时它只是一个长字符串......现在它与他们使用的多行方法不匹配。

这里有什么想法吗?

4

2 回答 2

2

我会为此使用像HtmlAgilityPack这样的真正的 html 解析器

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

var tds = doc.DocumentNode.Descendants("td")
                .Select(td=>td.InnerText)
                .ToList();
于 2013-05-14T18:47:30.827 回答
0

. 是一个匹配除 \n 之外的任何字符的通配符。

http://msdn.microsoft.com/en-us/library/az24scfc.aspx#character_classes

http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx

我相信您需要 RegexOptions.Singleline 代替。

于 2013-05-14T18:38:08.583 回答