Извлечение содержимого из каждого первого ТД в таблицу

У меня есть 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">