1
我有一個這樣的字符串:如何使用preg_replace在每次迭代中替換一個重複的子字符串?
$replace = "I am a [[boy]], he is a[[boy]] too."
我想要做的是,以取代第一[[boy]]
字「BLANK1」,第二[[boy]]
與「BLANK2」。
我曾嘗試:
for($i=1;$i<=count($questions[$qn_count]['correct_ans']);$i++){
$word = "##BLK".$i."##";
$pattern_bracket = "/\[\[([^\]]+)\]\]/";
$ff = preg_replace($pattern_bracket,$word , $replace, $i);
}
$questions[$qn_count]['body'] = $ff;
以上[[ ]]
總是似乎是相同的替換用## BLK2 ##。 是否可以替換兩個括號將不同的值?
爲什麼正則表達式是靜態詞? – Andreas
我認爲這是一樣的,因爲[[男孩]]也會出現兩次。 – killer2318
一個簡單的str_replace就足夠了如果它只是@Andreas提到的靜態詞。如果不是,你可以添加$ pattern_bracket變量中的內容嗎? – alpadev