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】就知道了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM