[英]Preg_match getting contents in div tags in div tags
懶惰或貪婪的搜索在這里用處不大,因為它必須匹配</div>
,而</div>
與<div class="viewContent">
不對應。 因此,結尾注釋在這里可以使用,因為它在邏輯上標記了所需划分的結尾。
使用以下正則表達式只能獲取<div class="viewControl">
的內容。
正則表達式: <div class="viewContent"[^>]*>(.*?)<\\/div[^>]*>(?=<!--viewContent-->)
說明:
<div class="viewContent"[^>]*>(.*?)<\\/div[^>]*>
這與帶有延遲搜索的除法匹配。
(?=<!--viewContent-->)
這positively looks ahead
注釋,這些注釋在邏輯上標志着<div>
的結尾
如果可以保證所需div的結束標記以<!--viewContent-->
,則可以使用:
<div class="viewContent"[^>]*>(.*?)</div[^>]*><!--viewContent-->
否則,您可能只想使用HTML解析器。
您可以使用DOMDocument類中內置的PHP來解析頁面的html,並使用DOMXPath類來提取具有特定HTML類的HTML元素的值:
<?php
$html = '';//HTML goes here
$doc = new DOMDocument();
@$doc->loadHTML($html);
$classname = "viewContent";
$finder = new DomXPath($doc);
$spanner = $finder->query("//*[contains(@class, '$classname')]");
foreach ($spanner as $entry) {
echo $entry->nodeValue;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.