我想删除一个具有特定类的段落(PHP / Regex)

时间:2010-12-27 16:56:23

标签: php regex

我认为这不会计算很多组合,我需要从字符串中删除一个具有特定类的段落(它是一致的)

示例:

<p class="special_class">Some content</p>

我想删除仅包含 special_class 的每个段落的内容。所以我想运行一个返回空的正则表达式。我不想使用解析器来执行此操作,我在脚本中使用非常少的函数。

谢谢:)

2 个答案:

答案 0 :(得分:2)

使用正则表达式进行HTML解析通常是个坏主意。请查看Simple HTML DOM Parser,找出指定的内容并将其删除。

如果你想使用正则表达式,你可以改为:

preg_replace('/<p class="special_class">[\w\s]*<\/p>/', '<p class="special_class"></p>');

答案 1 :(得分:1)

$result = preg_replace('%<p\s+class="special_class">.*?</p>%s', '', $subject);

应该有效。它会将整个段落从开头删除到结束p标记。它希望p标记正确关闭。但是您似乎已经知道使用正则表达式处理HTML的缺点......