[英]PHP preg_replace
preg_replace("/{{(.*?)}}/e","$$1",$rcontent);
请向我解释声明......我无法理解这一点
考虑一个使用示例:
$rcontent = "abc {{foo}} def";
$foo = 'bar';
$rcontent = preg_replace("/{{(.*?)}}/e","$$1",$rcontent);
echo $rcontent; // prints abc bar def
我假设您将preg_match
的值分配回$rcontent
,否则它将没有任何意义。
现在你正在使用的正则表达式是{{(.*?)}}
,它在{{
和}}
之间寻找任何(非贪婪的)并且还因为括号而记住匹配的字符串。
在我的情况下.*?
匹配foo
。
接下来更换零件是$$1
。 现在$1
是foo
,所以$$1
将是$foo
,这是bar
。 所以{{foo}}
将被$foo
的值替换为bar
。
如果$$1
仅仅是一个类型,你想用$1
,则正则表达式替换{{foo}}
与foo
。
lazy *重复前一项零次或多次。 懒惰,因此引擎首先尝试跳过前一项,然后尝试使用前一项的不断增加的匹配进行排列。
例如: .*?
在abc "def" "ghi" jkl
匹配"def"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.