簡體   English   中英

php:從字符串的開頭修剪br標簽?

[英]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>

(?:…)是一個非捕獲組,因為我們只使用括號來對表達式進行分組,而不是捕獲它。 修飾符並不是絕對必要的 - (…)也可以正常工作,但正則表達式引擎必須做更多的工作,因為它需要記住每個捕獲命中的位置和長度。

您在正則表達式中忘記了PCRE分隔符 試試這個:

$string = preg_replace('/^\s*(?:<br\s*\/?>\s*)*/i', '', $string);

這也將刪除換行符之前,之間和之后的前導空白字符。

一些解釋:

  • ^\\s*將匹配字符串開頭的任何空格字符
  • (?:<br\\s*\\/?>\\s*)*將匹配零個或多個BR標記(HTML和XHTML),后跟可選的空白字符
$string = preg_replace( '@^(<br\\b[^>]*/?>)+@i', '', $string );

應該匹配:

<br>
<br/>
<br style="clear: both;" />
etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM