Контент диапазона в тегах HTML с использованием Regex

StackOverflow https://stackoverflow.com/questions/2001152

  •  18-09-2019
  •  | 
  •  

Вопрос

Я хочу проанализировать содержание из

<td>content</td>
and
<td *?*>content</td>
and 
<td *specific td class*>content</td>

Как сделать это с помощью корпорации, PHP и Preg Match?

Это было полезно?

Решение

Я думаю это Подводит итог довольно хорошо.

Короче говоря, не используйте регулярные выражения, чтобы проанализировать HTML. Вместо этого посмотрите на классы DOM и особенно Domdocument :: LoadHtml

Другие советы

Если у вас есть HTML -документ, вам действительно не следует использовать регулярные выражения, чтобы проанализировать его: HTML просто недостаточно для этого.

Гораздо лучшим решением было бы загрузить ваш HTML -документ с помощью анализатора DOM - например,, например, DOMDocument::loadHTML а также Xpath Запросы Часто делайте действительно отличную работу!

<td>content</td>: <td>([^<]*)</td>

<td *specific td class*>content</td>: <td[^>]*class=\"specific_class\"[^>]*>([^<]*)<

@Op, вот один путь

$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";
}

выход

$ php test.php
content

content

content

 multiline
content
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top