gpt4 book ai didi

php preg_replace 使用捕获的组作为数组索引

转载 作者:行者123 更新时间:2023-12-01 10:35:29 26 4
gpt4 key购买 nike

看起来这应该很简单,但以下代码不起作用:

$text = preg_replace('/test([0-9]+)/i', $array["$1"], $text);

代码应该在文本中找到所有像 'test1'、'test2'、'test3' 等的实例,并用 $array[1]、$array[2]、$array[3] 的值替换,等等。

我究竟做错了什么?

最佳答案

您需要使用回调:

$text = preg_replace_callback('/(test)([0-9]+)/i', 
function($m) use($array) { return $m[1].$array[$m[2]]; },
$text);

该函数采用匹配项并使用与数组项连接的第一个捕获组匹配项,并将第二个捕获组匹配项作为索引。你可能想要一个 if 来检查 $array[$m[2]]首先存在。

或者,您可以使用循环:
foreach($array as $key => $val) {
$text = str_replace("test$key", "test$val", $text);
}

关于php preg_replace 使用捕获的组作为数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36315779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com