Espressione regolare per get contenuti della class div in php

Possibile duplicato:
PHP DOMDocument, trovare tag specifici
Come analizzare ed elaborare l'HTML con PHP?

Esiste una syntax speciale per get l'elemento div nidificato con un nome di class univoco in RegExp in php. Considera che ho una syntax simile

<div style="demo"> <div class="row"> <div title="[email protected]" class="text">ABC</div> </div> <div class="row"> <div title="[email protected]" class="text">PQR</div> </div></div> 

qui come possiamo recuperare tutte le email con RegExp e preg_match_all ().

 preg_match_all("/<div title=\"(.*)\" class=\"text\">/", $subject, $matches); 

Se le e-mail sono gli unici dati che desideri, ci sono migliori espressioni regolari per le sole e-mail corrispondenti. Vedi http://fightingforalostcause.net/misc/2006/compare-email-regex.php

I regex sono pessimi durante l'analisi dell'HTML. Utilizzare un parser DOM e questo XPath:

 //div[@style="demo"]/div[@class="row"]/div[@class="text"]/@title 

Se class="text" è esclusivo dei div che vuoi abbinare, puoi anche farlo

 //div[@class="text"]/@title 

Vedi anche:

 <?php $html = '<div style="demo"> <div class="row"> <div title="[email protected]" class="text">ABC</div> </div> <div class="row"> <div title="[email protected]" class="text">PQR</div> </div></div> '; $doc = DOMDocument::loadHTML($html); $xpath = new DOMXPath($doc); foreach($xpath->query('//div[@style="demo"]/div[@class="row"]/div[@class="text"]/@title') as $div){ echo $div->value . PHP_EOL; } 

Ciò presuppone che gli attributi di class siano esattamente quelli (letteralmente), ma spero che tu abbia l'idea.