在这种模式中:
$pattern = '/(\s*)@(if|foreach)(\s*\(.*\))/';
如何用$ on(\ s *(。*))
替换每个#之后将使用:
preg_replace($pattern, '$1<?php $2$3: ?>', $value);
答案 0 :(得分:1)
您正在寻找preg_replace_callback。
在那里,您可以定义一个返回替换的anonymous function,您可以在第3组执行附加任务,然后根据需要构建替换任务。
来自第二个链接中的示例
<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
return strtoupper($match[1]);
}, 'hello-world');
// outputs helloWorld
?>
您可以看到您可以像这样访问群组3:$match[3]