Справка по синтаксическому анализу в регулярном выражении для отсутствующего закрывающего тега </table> - PullRequest
1 голос
/ 31 января 2012

Мне необходимо извлечь все данные между тегами таблицы. но недавно из-за некоторых обновлений на сайте они забыли включить закрывающий тег в одну из таблиц. Оригинальный исходный код находится здесь:

<table><tr><td><b>Semester:</b></td><td><b>5</b></td><td></td><td>&nbsp;&nbsp;&nbsp;&nbsp;<b> Result:&nbsp;&nbsp;SECOND CLASS </b></td></tr></table><hr>

<table><tr><td width=250>Subject</td><td width=60 align=center>External </td><td width=60 align=center>Internal</td><td align=center width=60>Total</td><td align=center width=60>Result</td></tr><br><tr><td width=250><i>Software Engineering (06IS51)</i></td><td width=60 align=center>45</td><td width=60 align=center>19</td><td width=60 align=center>64</td><td  width=60 align=center><b>P</b></td></tr><tr><td width=250><i>Systems Software (06CS52)</i></td><td width=60 align=center>48</td><td width=60 align=center>20</td><td width=60 align=center>68</td><td width=60 align=center><b>P</b></td></tr><tr><td width=250><i>Operating Systems (06CS53)</i></td><td width=60 align=center>37</td><td width=60 align=center>21</td><td width=60 align=center>58</td><td width=60 align=center><b>P</b></td></tr><tr><td width=250><i>Database Management Systems (06CS54)</i></td><td width=60 align=center>38</td><td width=60 align=center>19</td><td width=60 align=center>57</td><td width=60 align=center><b>P</b></td></tr><tr><td width=250><i>Computer Networks - I (06CS55)</i></td><td width=60 align=center>58</td><td width=60 align=center>20</td><td width=60 align=center>78</td><td width=60 align=center><b>P</b></td></tr><tr><td width=250><i>Formal Languages & Automata Theory (06CS56)</i></td><td width=60 align=center>58</td><td width=60 align=center>21</td><td width=60 align=center>79</td><td width=60 align=center><b>P</b></td></tr><tr><td width=250><i>Database Applications Laboratory (06CSL57)</i></td><td width=60 align=center>49</td><td width=60 align=center>20</td><td width=60 align=center>69</td><td width=60 align=center><b>P</b></td></tr><tr><td width=250><i>Algorithms Laboratory (06CSL58)</i></td><td width=60 align=center>20</td><td width=60 align=center>18</td><td width=60 align=center>38</td><td width=60 align=center><b>P</b></td></tr><br><br><hr>

<table><tr><td><b>Semester:</b></td><td><b>3</b></td><td></td><td> &nbsp;&nbsp;&nbsp;&nbsp;<b> Result:&nbsp;&nbsp;SECOND CLASS </b></td></tr></table><hr>

<table><tr><td width=250>Subject</td><td width=60 align=center>External </td><td width=60 align=center>Internal</td><td align=center width=60>Total</td><td align=center width=60>Result</td></tr><br><tr><td width=250><i>Electronic Circuits (06CS32)</i></td><td width=60 align=center>35</td><td width=60 align=center>15</td><td width=60 align=center>50</td><td  width=60 align=center><b>P</b></td></tr></table><br><br>

<table><tr><td></td><td></td><td>Total Marks:</td><td> 50 &nbsp;&nbsp;&nbsp; </td></tr></table>                      

Я использовал приведенное ниже выражение regualr для сравнения, и оно работало нормально, но, как вы можете заметить, недавнее обновление забыло включить закрывающий тег table во второй элемент таблицы, и он нарушает код.

"|<table>.*<\/table>|U"

Пожалуйста, помогите мне сформировать выражение для сопоставления данных между таблицами. Любая помощь будет высоко оценена. Спасибо.

1 Ответ

0 голосов
/ 31 января 2012

Вместо того, чтобы получать данные между тегами <table>, вы можете принять данные, начиная с первого тега <tr> до последнего </tr> (включительно)

/(<tr>.*<\/tr>)/
...