我正在尝试替换文本中的多个变量。 我有例如这个文字:
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);
但这不起作用,因为我把它作为输出:{$} {$} {$}.
有人知道正确的模式是什么吗?
提前致谢
答案 0 :(得分:0)
$var = "Hello, %test% World %another test%!";
echo preg_replace('#%(.*?)%#', '{\$$1}', $var);
答案 1 :(得分:0)
尝试
preg_replace('/%(.*?)%/', '{\$$1}', $text);
答案 2 :(得分:0)
@Gert Van de Ven你需要逃避美元的特殊含义:
$var = "Hello, %test% World!";
echo preg_replace('#\%(.*?)\%#', '{\$$1}', $var);