放弃多个/重复的br标签

时间:2013-09-10 11:00:09

标签: php preg-replace

我想删除重复次数超过2次的多个<br>标记,例如:

This is text blah blah...
<br><br><br><br><br><br>Another text here

应该是:

This is text blah blah...
<br><br>Another text here

我有这个:

$str = preg_replace('#(<br\s?/?>)+#', '<br><br>', $str );

但是这也会用2 <br>替换简单的br标签,我怎样才能更改正则表达式?

由于

2 个答案:

答案 0 :(得分:3)

试试这个..

#(<br\s?/?>){2,}#

<强> Codepad

如果您的<br>之间包含空格,那么请遵循以下内容 -

#(<br\s?/?>\s*){2,}#

<强> Codepad

答案 1 :(得分:1)

试试这个:

$str = 'This is text blah blah...
<br><br><br><br><br><br>Another text here';

echo preg_replace('#(\s*<br\s*/?>\s*<br\s*/?>\s*)+#', '<br><br>', $str );

输出:

This is text blah blah...
<br><br>Another text here

DEMO

更新: 感谢@ M42的观点:

echo preg_replace('#(\s*<br\s*/?>\s*){2,}#', '<br><br>', $str );