PHP正则匹配HTML中指定标签之间内容的写法
PHP正则匹配HTML中指定标签之间内容的写法
假设网页内容如下:
<table> <tr> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> </table>
我要匹配的是每一个<tr></tr>之间的内容(当然tr里面有很多内容,这里没有列出来),暂时不考虑tr会嵌套的问题。
首先想到的正则是这样写的:
preg_match_all( '/<tr[^>]*(.*?)<\/tr>/i', $string, $matches ); echo "<pre>"; print_r( $matches); echo '</pre>';
但运行不了,经网上搜寻资料后改成如下写法后即可:
preg_match_all( '/<tr[^>]*([\s\S]*?)<\/tr>/i', $string, $matches ); echo "<pre>"; print_r( $matches); echo '</pre>';
理由很简单,回头复习一上正则表达示中【.】、【\s】和【\S】就知道了。