簡體   English   中英

Preg_replace到Preg_replace All

[英]Preg_replace to Preg_replace All

有人非常友好地幫助我使用正則表達式進行非常具體的使用,但我現在唯一的問題是正則表達式只替換了匹配的一個實例,而不是所有匹配 (這是目標)。

我想在這里找到帶有“Stylish-blue-button”類的<SPAN> 每個實例:

<span class="stylish-blue-button">
   <span style="display:none;">[data-user="12345" data-userId="678910"]</span>
     John Smith
   <span style="display:none;">[/]</span>
</span>
...Blablabla some other text...

成為這樣:

[data-user="12345" data-userId="678910"]John Smith[/] ...Blablabla some other text...

為此,我獲得了這個preg_replace:

preg_replace('~\[(data-user="\d+")\h+(data-userId="\d+")\]\s*(.+?)\s*\[/\]\s*(.*)~s', '<span $1 $2>$3</span>$4', trim(strip_tags($string)));

現在這個工作並且很棒,但它只替換了一個實例。

問題:我是否必須徹底改變/改變我的方法,或者這是一個小修改?

非常感謝你。

$regex = '~\[(data-user="\d+")\s+(data-userId="\d+")\]\s*(.+?)\s*\[\/\]\s*(.*)~is';

while (preg_match($regex, $string)) {
    $string = preg_replace($regex, "&lt;span $1 $2&gt;$3&lt;/span&gt;$4", trim(strip_tags($string)));
}

echo $string;

嘗試函數preg_match_all( http://php.net/preg_match_all )。 我希望它那么簡單。

暫無
暫無

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

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