我有一根绳子...
$str = 'bob<br /><br />looked so good<br />tonight!';
我想替换只有一个 <br />
的任何实例有两个。
目前我有...
echo preg_replace('/(<br \/>\s*){1}/', '<br /><br />', $str);
但是这个看跌期权是两个 <br />
在鲍勃之后,它应该只在良好的之后。
任何帮助都会很棒!
编辑:输出应该是...
bob<br /><br />looked so good<br /><br />tonight!
最佳答案
基本上你想要一个 <br />
前面或后面没有紧接着另一个标记的标记。因此:
/(?<!<br \/>)<br \/>(?!<br \/>)/
这假设所有 <br />
标签字面上是 <br />
而不是<br>
, <br/>
,甚至<br style="clear:both;">
。为了更好地解析,您应该使用 DOM 解析器并查找 BR
前面或后面没有另一个 BR
的节点节点。
关于php - 将 1 个 <br/> 替换为 2 个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12711361/