Ben içerik ayrıştırmak istiyorum
<td>content</td>
and
<td *?*>content</td>
and
<td *specific td class*>content</td>
Nasıl regex, php ve gebelik maç ile bu yapabilirsiniz?
I this oldukça iyi özetliyor sanırım.
Kısacası, HTML ayrıştırmak için normal ifadeler kullanmayın. Bunun yerine, DOM sınıfları bakmak ve özellikle DOMDocument::loadHTML
Bir HTML belge varsa, gerçekten bunu ayrıştırmak için normal ifadeler kullanmamalısınız: HTML sadece bunun için yeterli "normal" değildir.
Bir çok daha iyi bir çözüm DOM çözümleyici kullanarak HTML belgeyi yüklemek olacaktır - örneğin, DOMDocument::loadHTML
and Xpath queries genellikle gerçekten harika bir iş yapmak!
@ OP, burada bir yol
$str = <<<A
<td>content</td>
<td *?*>content</td>
<td *specific td class*>content</td>
<td *?*> multiline
content </td>
A;
$s = explode("</td>",$str);
foreach ($s as $a=>$b){
$b=preg_replace("/.*<td.*>/","",$b);
print $b."\n";
}
çıktı
$ php test.php
content
content
content
multiline
content