0

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

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 );

但这也<br>用 2 替换了简单的标签br,我怎么能改变正则表达式呢?

谢谢

4

2 回答 2

3

试试这个。。

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

键盘

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

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

键盘

于 2013-09-10T11:05:35.450 回答
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

演示

更新:感谢@M42 的观点:

echo preg_replace('#(\s*<br\s*/?>\s*){2,}#', '<br><br>', $str );
于 2013-09-10T11:03:44.787 回答