正则表达式,用于删除PHP中的div样式/类

时间:2010-11-14 19:26:36

标签: php regex

我想有选择地从字符串中解析出HTML。我使用了strip_tags来允许div,但我不想保留字符串中的div样式/类。也就是说,我想:

<div class="something">text</div>
<div style="something">text</div>

简单地成为:

<div>text</div>

两种情况。

有人可以帮忙吗?谢谢!

3 个答案:

答案 0 :(得分:2)

替换以下正则表达式:

(?<=<div.*?)(?<!=\t*?"?\t*?)(class|style)=".*?"

答案 1 :(得分:1)

以下是一个例子:

preg_replace('`<div (style="[^"]*"|class="[^"]*")>([^<]*)</div>`i', "<div>$1</div>", $str);

基本上,这会将div的内容与样式或类属性相匹配。然后,您删除所有内容以仅保留<div>content</div>

它比J V的版本长,但它不会取代像<div style="blablabla" color="blablabla">content</div>这样的东西。可能或可能不是你想要的。

答案 2 :(得分:0)

作为regexp的一个选项(总是吓坏我了), 我建议使用xml_parse_into_struct。

请参阅php.net,这是第一个例子。