在文件的源代码中,我有几个“钩子”,我想从我的 PHP 脚本中应用一些额外的变量。钩子应用于源,如:@include_plugin PluginName@
我可以使用preg_match_all('/@include_plugin .*@/', $sSource, $aPlugins);
此正则表达式找到它们,它为我提供了我想要的匹配项,但是是否也可以直接获取PluginName
而不是我的解决方案,然后必须将子字符串应用于匹配项?
在文件的源代码中,我有几个“钩子”,我想从我的 PHP 脚本中应用一些额外的变量。钩子应用于源,如:@include_plugin PluginName@
我可以使用preg_match_all('/@include_plugin .*@/', $sSource, $aPlugins);
此正则表达式找到它们,它为我提供了我想要的匹配项,但是是否也可以直接获取PluginName
而不是我的解决方案,然后必须将子字符串应用于匹配项?
您需要在正则表达式中使用捕获组。这些是通过在模式的一部分周围放置括号来创建的。
所以我们把你.*
变成(.*)
preg_match_all('/@include_plugin (.*)@/', $sSource, $aPlugins);
var_dump($aPlugins);
检查 var 转储的输出,索引 1 处将有一个仅包含插件名称的新子数组。
array(2) {
[0]=>
array(1) {
[0]=>
string(27) "@include_plugin PluginName@"
}
[1]=>
array(1) {
[0]=>
string(10) "PluginName"
}
}