gpt4 book ai didi

php - 替换模式内的所有事件

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

我有一个像这样的字符串

{{ some text @ other text @ and some other text }} @ this should not be replaced {{ but this should: @ }}

我希望它成为

{{ some text ### other text ### and some other text }} @ this should not be replaced {{ but this should: ### }}

我想这个例子已经足够直白了,我不确定我能否用文字更好地解释我想要实现的目标。

我尝试了几种不同的方法,但都没有奏效。

最佳答案

这可以通过一个正则表达式回调到一个简单的字符串替换来实现:

function replaceInsideBraces($match) {
return str_replace('@', '###', $match[0]);
}

$input = '{{ some text @ other text @ and some other text }} @ this should not be replaced {{ but this should: @ }}';
$output = preg_replace_callback('/{{.+?}}/', 'replaceInsideBraces', $input);
var_dump($output);

我选择了一个简单的非贪婪正则表达式来查找您的大括号,但您可以选择更改它以提高性能或满足您的需要。

匿名函数将允许您参数化您的替换:

$find = '@';
$replace = '###';
$output = preg_replace_callback(
'/{{.+?}}/',
function($match) use ($find, $replace) {
return str_replace($find, $replace, $match[0]);
},
$input
);

文档:http://php.net/manual/en/function.preg-replace-callback.php

关于php - 替换模式内的所有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10523887/

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