- preg_match: documentation ( source)
- print_r: documentation ( source)
<?php
$str = '<tr class="odd">
<td>姓名:张三</td>
<td>年龄:29</td>
</tr>';
$patt = '/<tr\s+(?:(?!>\s+<td>姓名:)(?:.|\n))+>\s+<td>姓名:((?:(?!</td>\s+<td>年龄:)(?:.|\n))+)</td>\s+<td>年龄:((?:(?!</td>\s+</tr>)(?:.|\n))+)</td>\s+</tr>/';
preg_match($str, $patt, $match);
print_r($match);