从HTML中删除具有特定类的范围,但不使用正则表达式删除内容

时间:2015-05-05 12:28:40

标签: php html regex

我的php脚本会创建以下html。

<div>
    <hr class="target"/>
    Remove target class <span class="target"> only and save this text</span>
    <span class='target test1 test2 '> Remove target class with span tag not this text</span>
    <span class="target"> multi-line / multi-paragraph content</span>
    <span class='target'>content without space after span tag</span>
</div>

我只想使用PHP regex表达式(如buiseness逻辑要求),如下所示。

<div>
    <hr/>
    Remove target class only and save this text
    Remove target class with span tag not this text
    multi-line / multi-paragraph content
    content without space after span tag
</div>

注意:(1)目标类可以用单/双引号括起来。 4)。具有多个类的跨度

我在PHP中使用了以下正则表达式。

$data = preg_replace('#<(\w+) class=["\']highlight["\']>(.*)<\/\1>#', '\2', $data);

它完成了大部分工作,但未能成功完成。 1)hr标签。 2)删除span标签时留出额外的空间。 3.)多线内容失败。

提前完成。

1 个答案:

答案 0 :(得分:1)

这样做的方法是使用DOMDocument:

>>> df = pd.DataFrame(index=range(0,4),columns=['A'], dtype='float')
>>> df.dtypes
A    float64
dtype: object