我有一个函数可以解析一些文本,并用数组中的值替换由"{
和}"
包围的任何标记。使用两个独立模式的正则表达式
function parse($template, array $values) {
return preg_replace_callback('/\{"{\ (\w+)\ \}\"/',function ($matches) use ($values) {
return isset($values[$matches[1]])?$values[$matches[1]]:$matches[0];
},
$template);
}
它怎么可以修改做同样的事情,但也使用第二个删除?具体来说,我还它以取代'{
和}'
为什么'/ x'不只是'/'?另外,你使用'end'只是为了得到数组中的最后一个值,对吧?它会不会总是'$匹配[1]'? – user1032531 2014-10-02 20:45:56
@ user1032531:1)'/ x' =扩展语法。 2)不,它可以是“匹配[1]”或“匹配[2]”,取决于匹配的内容。 – georg 2014-10-02 20:52:35
对比赛陷入困境。从未听说过扩展语法。为什么在你的例子中它是必需/期望的。 – user1032531 2014-10-02 20:55:18