替换子串只有一次,一个地方

Huy*_*rit 1 php replace

例:

string1="ah ah I love you ah ah ah ah";
Run Code Online (Sandbox Code Playgroud)

更换后:

string1="ah ah I love you ah thank you ah ah";
Run Code Online (Sandbox Code Playgroud)

以上表示'啊'在第四位置应该被'谢谢'取代

我不知道如何通过PHP编写上面的任务.你能帮助我吗?

Thi*_*ter 5

$string = "ah ah I love you ah ah ah ah";
echo preg_replace_callback('/ah/', function($m) {
    static $count = 0;
    if(++$count == 4) return 'thank you';
    else return $m[0];
}, $string);
Run Code Online (Sandbox Code Playgroud)

工作原理:每次ah匹配调用回调函数.静态$count变量增加,当它是第四个匹配时,它返回替换字符串,否则返回最初匹配的字符串.