Я бы на самом деле предложил:
- Загрузка строки с чем-то вроде SimpleXML.
- Удаление атрибутов, которые вы хотите очистить.
- Сохранение обратнов строку.
Существует множество проблем с пространством имен, которые я не знаю, как вам придется справляться, но это, вероятно, будет чище / счастливее, чем попытка построить одно или несколько регулярных выражений.выражения и убедитесь, что вы ничего не пропустите.
РЕДАКТИРОВАТЬ: оказывается, SimpleXML не будет работать (ограниченные возможности модификации), но DOM будет.Примерно так:
$data=<<<END1
<body itemscope="itemscope" itemtype="http://schema.org/WebPage">
<div itemprop="maincontent">content</div>
</body>
END1;
$xml=new DOMDocument();
$xml->loadXML($data);
// find every relevant node
$xpath = new DOMXPath($xml);
$attr = $xpath->query("//@itemscope|//@itemprop|//@itemtype");
foreach ($attr as $entry) {
$entry->parentNode->removeAttribute($entry->nodeName);
}
echo $xml->saveXML();
Вам нужно изменить его, чтобы включить все атрибуты, которые вы хотите удалить, и, как я сказал, я понятия не имею, как он будет работать с пространствами имен, но это начало.