lev*_*vik 35

您可以使用正则表达式执行此操作:

preg_replace("/(<br\s*\/?>\s*)+/", "<br/>", $input);
Run Code Online (Sandbox Code Playgroud)

如果您传入源HTML,这将返回一个字符串,其中包含一个替换每次运行的字符串.


eno*_*rev 17

我和levik(+1)几乎完全一样,只是考虑了一些不同的br格式:

preg_replace('/(<br[^>]*>\s*){2,}/', '<br/>', $sInput);
Run Code Online (Sandbox Code Playgroud)


Jak*_*raw 6

增强的可读性,更短,无论属性如何都能产生正确的输出:

preg_replace('{(<br[^>]*>\s*)+}', '<br/>', $input);
Run Code Online (Sandbox Code Playgroud)


And*_*ewC 5

谢谢所有..使用Jakemcgraw的(+1)版本

刚添加了不区分大小写的选项..

{(<br[^>]*>\s*)+}i
Run Code Online (Sandbox Code Playgroud)

测试这些正则表达式的好工具是:

http://www.spaweditor.com/scripts/regex/index.php