[英]php: trim br tags from the beginning of a string?
我知道:
preg_replace('<br\s*\/?>', '', $string);
将删除$ string中的所有br标签...
我们怎样才能删除所有<br><br/><br />
标签,只有当他们在$字符串的开始? (在我的例子中,$ string是带有各种标签的HTML代码......)
只需添加一个合适的锚点( ^
):
preg_replace('/^(?:<br\s*\/?>\s*)+/', '', $string);
这将匹配字符串开头的多个<br>
。
(?:…)
是一个非捕获组,因为我们只使用括号来对表达式进行分组,而不是捕获它。 修饰符并不是绝对必要的 - (…)
也可以正常工作,但正则表达式引擎必须做更多的工作,因为它需要记住每个捕获命中的位置和长度。
$string = preg_replace( '@^(<br\\b[^>]*/?>)+@i', '', $string );
应该匹配:
<br>
<br/>
<br style="clear: both;" />
etc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.