У меня есть HTML, который выглядит так:
<tr class="row-even"> <td align="center">abcde</td> <td align="center"><a href="deluserconfirm.html?user=abcde"><img src="../images/delete_x.gif" alt="Delete User" border="none" /></a></td> </tr> <tr class="row-odd"> <td align="center">efgh</td> <td align="center"><a href="deluserconfirm.html?user=efgh"><img src="../images/delete_x.gif" alt="Delete User" border="none" /></a></td> </tr> <tr class="row-even"> <td align="center">ijkl</td> <td align="center"><a href="deluserconfirm.html?user=ijkl"><img src="../images/delete_x.gif" alt="Delete User" border="none" /></a></td> </tr>
И мне нужно получить значения, efgh
, efgh
и ijkl
Это регулярное выражение, которое я использую сейчас:
preg_match_all('/(<tr class="row-even">|<tr class="row-odd">)<td align="center">(.*)<\/td><\/tr>/xs', $html, $matches);
Да, я не очень хорош в них. Как и в большинстве моих попыток регулярного выражения, это не работает. Может ли кто-нибудь сказать мне, почему?
Кроме того, я знаю о парсерах html / xml, но для этого потребуется значительный пересмотр кода. Так вот на потом. На данный момент нам нужно придерживаться регулярного выражения.
EDIT: Чтобы уточнить, мне нужны значения между первым <td align="center"></td>
после <tr class="row-even">
или <tr class="row-odd">