0

以下 PHP 正则表达式删除所有空标签:

#<[^\/>]*>([\s]?)*<\/[^>]*>#u

我想删除不匹配的空标签:

<div style="clear:both"></div>

我试过了:

#^(<div style="clear:both"></div>)<[^\/>]*>([\s]?)*<\/[^>]*>#u

......但它没有工作。

如何添加否定?

4

1 回答 1

3

假设它格式正确并且没有丢失结束标签,这应该可以解决问题:

<(?!div\s+style=(?:"[^"]*?\bclear:\s*both\b[^"]*"|'[^']*?\bclear:\s*both\b[^']*')\s*>\s*</div>).*?>\s*</.*?>

确保也使用不区分大小写标志。不过,我仍然建议不要这样做。

编辑:我没有测试我的编辑,但我相当有信心它会更彻底。

于 2013-01-13T03:04:13.123 回答