求正则
有一段html如下:
<tr class='tr'>
<td><a href='#'>helo1</a><td>
</tr>
<tr class='tr'>
<td><a href='#'>helo2</a><td>
</tr>
<tr class='tr'><td><a href='#'>helo3</a><td></tr>
求正则通过preg_match_all获得每个tr内容的数组,即:
$ret[0]="<tr class='tr'><td><a href='#'>helo1</a><td></tr>"
$ret[1]="<tr class='tr'><td><a href='#'>helo2</a><td></tr>"
$ret[2]="<tr class='tr'><td><a href='#'>helo3</a><td></tr>"
<tr class='tr'>
<td><a href='#'>helo1</a><td>
</tr>
<tr class='tr'>
<td><a href='#'>helo2</a><td>
</tr>
<tr class='tr'><td><a href='#'>helo3</a><td></tr>
求正则通过preg_match_all获得每个tr内容的数组,即:
$ret[0]="<tr class='tr'><td><a href='#'>helo1</a><td></tr>"
$ret[1]="<tr class='tr'><td><a href='#'>helo2</a><td></tr>"
$ret[2]="<tr class='tr'><td><a href='#'>helo3</a><td></tr>"
作者: mataofq 发布时间: 2011-06-01
修改html如下:
<tr class='tr'>
<td><a href='#'>helo1</a></td>
</tr>
<tr class='tr'>
<td><a href='#'>helo2</a></td>
</tr>
<tr class='tr'><td><a href='#'>helo3</a></td></tr>
求正则通过preg_match_all获得每个tr内容的数组,即:
$ret[0]="<tr class='tr'><td><a href='#'>helo1</a></td></tr>"
$ret[1]="<tr class='tr'><td><a href='#'>helo2</a></td></tr>"
$ret[2]="<tr class='tr'><td><a href='#'>helo3</a></td></tr>"
<tr class='tr'>
<td><a href='#'>helo1</a></td>
</tr>
<tr class='tr'>
<td><a href='#'>helo2</a></td>
</tr>
<tr class='tr'><td><a href='#'>helo3</a></td></tr>
求正则通过preg_match_all获得每个tr内容的数组,即:
$ret[0]="<tr class='tr'><td><a href='#'>helo1</a></td></tr>"
$ret[1]="<tr class='tr'><td><a href='#'>helo2</a></td></tr>"
$ret[2]="<tr class='tr'><td><a href='#'>helo3</a></td></tr>"
作者: mataofq 发布时间: 2011-06-01
PHP code
我不确定这个.是不是代表任意字符,我好像记得它是除换行符之外的所有字符?
preg_match_all('/<tr>.*<\/tr>/U',$str,$out); $ret=$out[0];
我不确定这个.是不是代表任意字符,我好像记得它是除换行符之外的所有字符?
作者: ahui132811 发布时间: 2011-06-01
PHP code
U去贪婪
m多行匹配
s认为'.'是所有字符,否则.不能匹配换行符
<?php $str=" <tr class='tr'> <td><a href='#'>helo1</a></td> </tr> <tr class='tr'> <td><a href='#'>helo2</a> </td> </tr> <tr class='tr'><td><a href='#'>helo3</a></td></tr>"; //preg_match_all('/\<tr\>.*\<\/tr\>/sm',$str,$out); preg_match_all('/<tr[^>]*>.*<\/tr>/Usm',$str,$out); $ret=$out[0]; var_dump($ret); ?>
U去贪婪
m多行匹配
s认为'.'是所有字符,否则.不能匹配换行符
作者: ahui132811 发布时间: 2011-06-01
又想了下,觉得这样子更快:preg_match_all('/<tr.*<\/tr>/Usm',$str,$out);
作者: ahui132811 发布时间: 2011-06-01