preg_replace正则表达式HTML

时间:2014-04-27 20:30:05

标签: regex wordpress tinymce preg-replace

我在WordPress中使用短代码。在每个短代码输出(结束div)后,我得到了< br> (或< br />)标记。 试图过滤掉它们,但我不知道如何。生成的HTML看起来像

<div class="fullwidth"><!-- 1st shortcode-->
<div class="fullwidth-content">
  <!-- 2nd shortcode-->
  <div class="twocol-one"> content
  </div><br>
</div><br>
<!-- 3rd shortcode-->
<div class="twocol-second"> content
</div><br>
<div class="clearboth"></div>
</div><br>

似乎BR是来自 tinyMCE 的换行符。而且我不想要loooong shotcode行。

我正在尝试使用preg_replace但我无法创建正确的$ pattern。

你能帮助我吗?

我的功能

function replace_br($content) {
$rep = preg_replace("/<\/div>\s*<br\s*\/?>/i", "</div>",$content);
return $rep; }
add_filter('the_content', 'replace_br');

不能正常工作。

使用时     功能$rep = preg_replace("/\s*<br\s*\/?>/i", "",$content);,所有BR都被替换。 很好,但我想在关闭DIV标签后仅替换BR。

str_replace("</div><br>", "</div>", $content);也无效。

我的功能出了什么问题?

没有错误返回。

1 个答案:

答案 0 :(得分:0)

这是使用正则表达式的另一种方法 在你的情况下

/(?<=<\/div>)(<br[\s\/]?>)/mg