La respuesta simple es que no. En su lugar, utiliza uno de los muchos analizadores HTML de PHP. Los regex son una forma escamosa y propensa a errores de manipular HTML.
Dicho esto se puede hacer esto:
$html = preg_replace('!<div\s+id="ithis"\s+class="cthis">.*?</div>!is', '', $html);
Pero muchas cosas pueden mal con esto. Por ejemplo, si un div que contiene:
<div id="ithis" class="cthis">Content here which <div>includes</div> other elements etc..) </div>
que va a terminar con:
other elements etc..) </div>
como la expresión regular se detendrá en la primera </div>
. Y no, no hay nada que puedas hacer realmente para resolver este problema (con expresiones regulares) consistentemente.
hecho con un programa de análisis se parece más a esto:
$doc = new DOMDocument();
$doc->loadHTML($html);
$element = $doc->getElementById('ithis');
$element->parentNode->removeChild($element);
$html = $doc->saveHTML();
¿Puede seguir elaborando? ¿Esto es en forma de una cuerda? –
¿conoces el nombre o el nombre de la clase? ¿O hay identificadores distintos de la identificación y/o clase para que no elimine todos los divs que caen en esa descripción? ¿O quieres eliminar todos los divs y su contenido? –