我希望<br /><br />
变成<br />
正则表达式的模式是什么?
注意:<br />
标记可以连续出现2次以上。
答案 0 :(得分:32)
$html = preg_replace('#(<br */?>\s*)+#i', '<br />', $html);
这将抓住<br>
,<br/>
或<br />
与它们之间任何数量或类型的空白的任意组合,并将其替换为单个<br />
。
答案 1 :(得分:19)
你可以使用s/(<br \/>)+/<br \/>/
,但是如果你想在HTML上使用正则表达式,你可能会做错事。
编辑:如果您有混合休息时间,可以使用稍微更健壮的模式:
/(<br\ ?\/?>)+/
这也会抓住<br/>
和<br>
,这在某些情况下可能会有用。
答案 2 :(得分:1)
@ FtDRbwLXw6给出的答案很好,尽管它不占
空间。我们可以扩展此正则表达式以使其包括在内:
$html = preg_replace('#(<br *\/?>\s*( )*)+#', '<br>', $html);
答案 3 :(得分:0)
(<br />)+
将匹配它们以便您可以使用preg_replace
替换它们(请记住正确转义字符)。
答案 4 :(得分:-1)
这很好。它适用于下面的所有组合。
$html = '<br><br>
Some text
<br>
<br>
Some another<br/><br>';
$html = preg_replace("/(<br.*?>\s*)+(\n)*+(<br.*?>)/","<br>",$html);
$html
将更改为
<br>
Some text
<br>
Some another<br>