Sug*_*ime 1 .net c# regex .net-4.0
我正在尝试使用正则表达式来匹配表格,但我遇到了一些问题.我无法弄清楚它为什么不能正常匹配.这是HTML:
<table class="integrationteamstats">
<tbody>
<tr>
<td class="right">
<span class="mediumtextBlack">Queue:</span>
</td>
<td class="left">
<span class="mediumtextBlack">0</span>
</td>
<td class="right">
<span class="mediumtextBlack">Aban:</span>
</td>
<td class="left">
<span class="mediumtextBlack">0%</span>
</td>
<td class="right">
<span class="mediumtextBlack">Staffed:</span>
</td>
<td class="left">
<span class="mediumtextBlack">0</span>
</td>
</tr>
<tr>
<td class="right">
<span class="mediumtextBlack">Wait:</span>
</td>
<td class="left">
<span class="mediumtextBlack">0:00</span>
</td>
<td class="right">
<span class="mediumtextBlack">Total:</span>
</td>
<td class="left">
<span class="mediumtextBlack">0</span>
</td>
<td class="right">
<span class="mediumtextBlack">On ACD:</span>
</td>
<td class="left">
<span class="mediumtextBlack">0</span>
</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我需要得到两条信息:Queue下面的td内的数据和Wait下面的td内的数据(所以Queue计数和等待时间).很明显,这些数字会经常更新.
这是我用于提取初始表的正则表达式,但它不起作用:
Match statstable = Regex.Match(this.html, "<table class=\"integrationteamstats\">(.*?)</table>");
Run Code Online (Sandbox Code Playgroud)
而且我不确定我应该用什么正则表达式从td获取数据.
在有人要求之前,没有办法我无法更新HTML以获得ID或任何性质的东西.它几乎就是这样.唯一一致的是td的位置.
我建议使用HTML Agility Pack来解析HTML并查询其结构,而不是正则表达式.
什么是Html Agility Pack(HAP)?
这是一个敏捷的HTML解析器,它构建一个读/写DOM并支持普通的XPATH或XSLT(你实际上不需要理解XPATH或XSLT来使用它,不用担心......).它是一个.NET代码库,允许您解析"out of the web"HTML文件.解析器非常容忍"真实世界"格式错误的HTML.对象模型与提出System.Xml非常相似,但对于HTML文档(或流).