0

我正在尝试替换文本中的多个变量。我有例如这个文本:

This is an example text , my variables are:
%name%
%frontname%
%lastname%
%email%

不,我想用 {$variable} 替换 % % 字符之间的每个变量。

所以我的输出看起来像这样:

This is an example text , my variables are:
{$name}
{$frontname}
{$lastname}
{$email}

我尝试使用的模式是这样的:

$textResponder = preg_replace('#\%[^\%]+\%#', '{$$1}', $text);

但这不起作用,因为我得到了这个输出:{$} {$} {$}.有人知道正确的模式是什么吗?

提前致谢

4

3 回答 3

0
$var = "Hello, %test% World %another test%!";
echo preg_replace('#%(.*?)%#', '{\$$1}', $var);

在这里测试

于 2012-04-13T08:06:58.880 回答
0

尝试

preg_replace('/%(.*?)%/', '{\$$1}', $text);
于 2012-04-13T08:12:02.443 回答
0

@Gert Van de Ven 你需要逃避美元的特殊含义:

$var = "Hello, %test% World!";
echo preg_replace('#\%(.*?)\%#', '{\$$1}', $var);
于 2012-04-13T08:12:38.597 回答