PHP preg_replace

sow*_*iya 6 php regex preg-replace

preg_replace("/{{(.*?)}}/e","$$1",$rcontent); 
Run Code Online (Sandbox Code Playgroud)

请向我解释声明......我无法理解这一点

cod*_*ict 4

考虑一个示例使用:

$rcontent = "abc {{foo}} def";
$foo = 'bar';
$rcontent = preg_replace("/{{(.*?)}}/e","$$1",$rcontent); 
echo $rcontent; // prints abc bar def
Run Code Online (Sandbox Code Playgroud)

我假设您正在将preg_matchback 的值分配给$rcontent否则它将没有任何意义。

现在,您使用的正则表达式会查找和{{(.*?)}}之间的任何内容(非贪婪地),并且还会因为括号而记住匹配的字符串。就我而言,匹配。{{}}
.*?foo

接下来的替换零件是$$1。现在$1foo$$1将来$foo也是bar。因此{{foo}}将会被替换为 的$foobar

如果$$1只是一种类型并且您打算使用,$1则正则表达式将替换{{foo}}foo