Регулярные выражения - записи матчей в HTML - PullRequest
0 голосов
/ 04 октября 2010

Мне нужно сопоставить большое количество записей в 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">

Я пытаюсь сделать следующее:

  • Начать мой матч в: id = 'OrdreID
  • Примите все после, пока не увидит: <td colspan="9" osv..
  • Затем, наконец, я соответствую финалу:

С моим текущим решением у меня проблема в том, что шаблон исключения соответствует только символам, а не строкам.

Я читал о "lookahead", но не знаю, как его использовать в этомситуация ..

Спасибо большое !!С наилучшими пожеланиями, Ларс

Ответы [ 2 ]

2 голосов
/ 04 октября 2010

Я вижу, что вы пробовали пилу, где нужна отвертка.

Вы пробовали использовать анализатор HTML?

0 голосов
/ 04 октября 2010

Используйте HtmlAgilityPack или аналогичный анализатор.Если вы должны использовать Regex, и вас не очень заботит надежность и удобство обслуживания, вы можете попробовать что-то вроде:

string pattern = "(?<=id='OrdreID).+(?=<td colspan=\"9\" osv)";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...