php 正则表达式 preg_replace html 标签

php regex preg_replace html tags

你好,我有以下代码:

$content = '<div class="style1" id="divelement" align="center">';

这是我的代码:

preg_replace('~<div\s*.*?(?:\s*class\s*=\s*"(.*?)"\s*|\s*id\s*=\s*"(.*?)"\s*)?>~i','<div class="" id="">', $content);

现在我正在尝试替换整个元素,但只保留 class 和 id。

最好使用像DOMDocument这样的库来解析HTML。但是如果你真的必须用正则表达式来做......

不要在正则表达式中使用 |,它匹配 classid,但不能同时匹配两者。

preg_replace('~<div\b.*?\bclass\s*=\s*"(.*?)".*?\bid\s*=\s*"(.*?)".*>~i','<div class="" id="">', $content);

请注意,只有当 classDIV 中的 id 左侧时才有效。