gpt4 book ai didi

php - preg_replace 正则表达式不输出任何内容

转载 作者:可可西里 更新时间:2023-10-31 23:05:24 24 4
gpt4 key购买 nike

    $str = '<div class="hello">{author}</div><div id="post_{id}"><div class="content">{content}</div></div>';
$pattern = '/\{([a-z _0-9]+)\}/i';
$subst= array('author'=>'Mr.Google','id'=>'1239124587123','content'=>'This is some simple text');
$str = preg_replace($pattern,$subst['$1'],$str);
echo $str;

{text} 的每个实例结果都是“”是我在捕获组上做错了什么吗?我用 preg_match_all 完成了此操作,它返回为 {author}author 这是这里的问题吗?

最佳答案

在这种情况下,您需要 preg_replace_callback :

$str = preg_replace_callback($pattern, function ($matches) use ($subst) {
return $subst[$matches[1]];
}, $str);

另一个解决方案是使用 strtr 功能:

// $subst needs to be changed a bit.
$subst= array('{author}'=>'Mr.Google','{id}'=>'1239124587123','{content}'=>'This is some simple text');
echo strtr($str, $subst);

关于php - preg_replace 正则表达式不输出任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23924687/

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