有一段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>"
<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>"
<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>"
$ret=$out[0];我不确定这个.是不是代表任意字符,我好像记得它是除换行符之外的所有字符?
<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认为'.'是所有字符,否则.不能匹配换行符
<?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>";
$mode="/<tr.*\/tr>/Usm";
preg_match_all($mode,$str,$ret);
print_r($ret);?>