Здравствуйте, требуется помощь в написание регулярки для PHP preg_match, нужно вытащить весь текст вместе с тегами (<table>), которые имеют определенный класс (class="test"), который в свое время может находится в любой очередности возможных атрибутов.
Например
<table class="test">
<tr>
<td>bla bla bla</td>
</tr>
</table>
или
<table border="1" class="test">
<tr>
<td>bla bla bla</td>
</tr>
</table>
или
<table border="1" style="color:#bb0011" class="test">
<tr>
<td>bla bla bla</td>
</tr>
</table>
/<table\b[^>]*?\bclass\s*=\s*(['"]).*?\btest\b.*?\1.+?<\/table>/si
Что ищем
<table - последовательность <table\b - конец слова. <tablerow нам не подходит[^>]*? - любые символы, кроме > в любом количестве, но не жадно\bclass - слово, начинающееся с class\s*=\s* - знак =, обрамленный 0 или больше пробелов(['"]) - одинарная или двойная кавычка.*? - любые символы в любом количестве\btest\b - отдельное слово test.*? - любые символы в любом количестве\1 - именно та кавычка, которая нам встретилась до этого.+? - любые символы в количестве одного или больше<\/table> - закрывающий тег/si - не учитывать переводы строк, регистр не учитыватьПрошу прощения, может не в тему, а если использовать DOMDocument?
$html = "Ваш html код";
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = $xpath->query("//table[@class=\"test\"]");
foreach ($result as $table)
{
echo $dom->saveHTML($table);
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости