1

例子:

string1="ah ah I love you ah ah ah ah";

更换后:

string1="ah ah I love you ah thank you ah ah";

上面的意思是第四位的“啊”应该换成“谢谢”

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

4

2 回答 2

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);

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

于 2012-12-27T12:44:10.410 回答
1

非正则表达式方法。

$string = "ah ah I love you ah ah ah ah";

// search for the 4th 'ah'
$pos = 0;
for($i = 0; $i < 4; $i++){
    $pos = strpos($string, 'ah', $pos);
    $pos++;
}
// substring before the found, the replacement, and after the found
$result = substr($string, 0, $pos-1).'thank you'.substr($string, $pos+1);
于 2012-12-27T13:13:56.043 回答