我该怎么做呢:
...<br />
<br />
...<br />
...<br />
<br />
<br />
...<br />
使用 PHP :
进入此项目...<br />
...<br />
...<br />
...
请注意删除第一个和最后一个,即使它被提及一次。在中间我们只保留一个
答案 0 :(得分:10)
preg_replace('#<br />(\s*<br />)+#', '<br />', $your_string);
这将使用单个<br />
替换多个<br />
的实例,可选地将它们分隔开来。
请注意,模式中的<br />
完全匹配。如果您想要更具防御性,可以将其更改为<br[^>]*>
,这将允许<br>
标记具有属性(即。<br style="clear: both;" />
)或没有尾随斜杠。
答案 1 :(得分:1)
首先,您应该编辑您的问题,因为第一个<br />
没有出现。
然后,要替换所有重复的<br />
以及第一个和最后一个,您可以执行以下操作:
$str = <<<EOD
<br />
...<br />
<br />
...<br />
...<br />
<br />
<br />
...<br />
EOD;
$str = preg_replace('~(^<br />\s*)|((?<=<br />)\s*<br />)|(<br />\s*$)~', '', $str);
echo "===\n",$str,"\n===\n";
这将输出:
===
...<br />
...<br />
...<br />
...
===