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