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

