我必须匹配HTML中的大量记录。我希望每条记录都与正则表达式匹配(使用.NET Regex Match)。
每条记录的格式都是这样的(HTML包含普通HTML和大约100条记录,如下所示):
<tr onclick="window.location.href='Vareauktion.asp?VISSER=Ja&funk=detaljedata&ID=14457'" style="cursor:hand" onmouseover="bgColor='#808080'" onmouseout="bgColor='#4b4b4b'" bgcolor="#4b4b4b">
<td valign="top">
<div id='OrdreID14457'></div>
<script>RunTimer('OrdreID14457', '04-10-2010 14:30:22');</script>
<em><font size="-1">04-10-2010 14:30:22</font></em></td>
<td valign="top"> Voldby (28|0)</td>
<td valign="top">02:16:00</td>
<td valign="top">09-10-2010<br>15:30:22</td>
<td valign="top">Modeltog <img src="images/Gods_Modeltog.gif" alt="Modeltog" height="15" border="0"></td>
<td valign="top">6603 T.</td>
<td valign="top">
<img src='images/moneter.gif' height='13' alt='Moneter'>5.751.213
</td>
<td valign="top">
</td>
<td valign="top">
</td>
</tr>
到目前为止,我已尝试过以下内容:
正则表达式:
id='OrdreID.*[^(<td colspan="9" height="1" bgcolor="#000000">)]*<td colspan="9" height="1" bgcolor="#000000">
我要做的是以下内容:
<td colspan="9" osv..
根据我目前的解决方案,我遇到的问题是排除模式只匹配字符,而不是字符串..
我一直在阅读“前瞻”,但我不知道如何在这种情况下使用它..
非常感谢!! 最好的祝福, 拉斯
答案 0 :(得分:2)
我看到你已经尝试过需要螺丝刀的锯子。
您是否尝试过使用HTML解析器?
答案 1 :(得分:0)
使用HtmlAgilityPack或类似的解析器。如果你必须使用正则表达式,并且你不太关心健壮性或可维护性,你可以尝试类似的东西:
string pattern = "(?<=id='OrdreID).+(?=<td colspan=\"9\" osv)";