preg_replace - 匹配两个标签之间的所有内容

ste*_*eve 2 php regex preg-replace

我正在使用一个 CMS 系统,该系统坚持在</figure>和之间放置大量垃圾标记和空标签<figcaption>标签之间放置大量垃圾标记和空标签。

\n\n

我正在尝试使用正则表达式来匹配并删除此垃圾(遗憾的是修复 CMS 是不可能的)。

\n\n

我似乎创建了一个正则表达式,它有点太饿了,而且还剥离了标签。

\n\n
$str = \'<p></p><figure class="image"><img title="Screenshot 2014-08-26 16.34.12.png" alt="Screenshot 2014-08-26 16.34.12.png" src="/image/Screenshot%202014-08-26%2016.34.12.png" class="image-style-none" typeof="foaf:Image"></figure><p></p>\n    <p>\xc3\x82&nbsp;</p>\n    <p></p><figcaption>Screenshot 2014-08-26 16.34.12.png</figcaption><p></p>\n    <p>  </p>\n    <p> </p>\n    <p></p>\';\n\npreg_replace(\'#(</figure>).*?(<figcaption>)#s\', \'[replace-me]\', $str);\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人能指出我正确的方向吗?

\n

小智 5

preg_replace('#(?<=<\/figure>)(.*?)(?=<figcaption>)#ms', '[replace-me]', $str));
Run Code Online (Sandbox Code Playgroud)

正则表达式是不是很有趣!