PHP - 带有数组项的括号中的preg_replace项

man*_*moo 4 php regex preg-replace preg-match-all

我有一个数组:

array('id' => 'really')
Run Code Online (Sandbox Code Playgroud)

我有一个字符串:

$string = 'This should be {id} simple.';
Run Code Online (Sandbox Code Playgroud)

我想最终得到:

This should be really simple.
Run Code Online (Sandbox Code Playgroud)

我有一个正常的表达式,可以使用{id}方面,但我很难做我想做的事情.

/{([a-zA-Z\_\-]*?)}/i
Run Code Online (Sandbox Code Playgroud)

{id}可以是任何内容,{foo}或{bar}或与我的正则表达式匹配的任何内容.

我确信目前有一个简单的解决方案正在逃避我.

谢谢,

贾斯汀

Stu*_*uck 5

str_replace比preg_replace快,试试这个:

$arr = array('a' => 'a', 'b' => 'b');
$str = "{a} {b} {c}";
$values = array_values($arr);
$keys = array_keys($arr);

foreach ($keys as $k => $v) {
    $keys[$k] = '{'.$v.'}';
}

str_replace($keys, $values, $str);
Run Code Online (Sandbox Code Playgroud)