Следующим кодом возможно добиться исключения вставки слова "text" между тегами <table>, но как еще добится и того что бы не вставляло между тегами <blockquote>?
----------------------------
PHP:
скопировать код в буфер обмена
$xx='<p>...</p> <p>...</p> <table> <tr> <td><p>...</p></td> <td><p>...</p></td> </tr> </table> <p>...</p>'; $mask='<<<%s>>>'; $pl=array(); $yy=preg_replace_callback( '~<table>.*?</table>~is', function($m) use (&$pl,$mask){ $pl[]=$m[0]; return sprintf($mask,count($pl)); }, $xx ); $tt=preg_replace('/<\/p>/', '</p>text', $yy); $zz=preg_replace_callback( '~'.sprintf(preg_quote($mask,'~'),'(.*?)').'~si', function($m) use ($pl){ return $pl[$m[1]-1]; }, $tt ); print_r($zz);
----------------------------
|