簡體   English   中英

RegEX以使用PHP匹配所有標簽之間的匹配

[英]RegEX to match all between tags with PHP

因此,我正在編寫一個腳本,該腳本將所有兩個div標簽之間的所有內容都按照我的方式工作,但它與我注意到的所有內容都不匹配,我不確定為什么,是否是由於換行或其他原因問題。 我希望字面上的所有內容(包括其他html標簽)都匹配。

     $aPost = preg_match_all('#<div class="posttext">(.*?)</div>#', $rThread, $aPosts);

看起來好像只匹配一行中寫的任何內容而沒有換行符,並且如果div不滿足該條件,則將其完全忽略。

要修復您的正則表達式,請使用dotall修飾符來強制. 匹配換行序列:

preg_match_all('~<div class="posttext">(.*?)</div>~si', $rThread, $aPosts);

但是,我將避免使用正則表達式,並有效地使用DOMXPath為您完成此操作。

$doc = new DOMDocument;
@$doc->loadHTML($html); // load the HTML data

$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//div[@class="posttext"]');

foreach ($nodes as $node) {
   echo $node->nodeValue, "\n";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM