Blade::extend函数中的$1和$2是什么意思?

5

我在Laravel文档中看到了这个例子:

Blade::extend(function($view, $compiler)
{
    $pattern = $compiler->createMatcher('datetime');
    return preg_replace($pattern, '$1<?php echo $2->format(\'m/d/Y H:i\'); ?>', $view);
});

但我似乎不太理解它,有时网上的示例包括 $3。

通过谷歌搜索,我没有找到合适的答案,感激任何帮助。

1个回答

5

这是一个字符串替换操作!它会用模式匹配的相应组来替换变量(例如$1)!

以下是一个示例(伪代码):

$pattern = "/(.*?)([a-z])/";
//Here is $1 ^ This group and $2 would be the second group

此外,还有以下额外的帮助:

PHP正则表达式速查表

在线正则表达式测试工具 (它可以很好地可视化您的正则表达式匹配,并解释您的正则表达式的不同部分)


当我看到$compiler->createMatcher()函数的代码时,我更明白它了。第一组将引用@,然后是传递的值,以及可能存在于Blade扩展函数中的参数。 - Mohamed Mo Kawsara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接