使用类删除<div>而不删除内容

时间:2018-11-05 16:42:01

标签: php regex video

我将视频包裹在自定义div中。看起来像这样:-

<div class="yt">
  <iframe>....Video code....</iframe>
</div>

我想删除<div class="yt"></div>,但保留iframe。我尝试通过以下代码使用preg_replace:-

$content = preg_replace('#<div class="yt">(.*?)</div>#', '', $content);
return $content;

这将删除整个div。有人可以帮我吗?

所需的输出

<iframe>....Video code....</iframe>

1 个答案:

答案 0 :(得分:2)

您可以使用Regex来做到这一点,但必须进行两项更改:

(.*?)与换行符不匹配。因此,将.替换为[\s\S](来源:Any character including newline - Java Regex

要保留内容,您需要将其替换为捕获组$1

最终代码:

$content = preg_replace('#<div class="yt">([\s\S]*?)</div>#', '$1', $content);

演示:https://regex101.com/r/oHiPt2/1

如果需要删除周围的空白,可以改进正则表达式或使用trim()