Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式获取匹配中字符串的特定部分_Php_Regex_Preg Match All - Fatal编程技术网

Php 正则表达式获取匹配中字符串的特定部分

Php 正则表达式获取匹配中字符串的特定部分,php,regex,preg-match-all,Php,Regex,Preg Match All,在一个文件的源代码中,我有几个“钩子”,我想从PHP脚本中获得这些钩子,以便应用一些额外的变量。 钩子应用于源代码,如:@include_plugin PluginName@ 我可以使用preg_match_all('/@include_plugin.*@/',$sSource,$aPlugins)找到它们 这个正则表达式提供了我想要的匹配项,但是也可以直接获取PluginName而不是我的解决方案,然后必须对匹配项应用子字符串吗?您需要在正则表达式中使用捕获组。这些是通过在图案的一部分周围放置

在一个文件的源代码中,我有几个“钩子”,我想从PHP脚本中获得这些钩子,以便应用一些额外的变量。 钩子应用于源代码,如:@include_plugin PluginName@

我可以使用
preg_match_all('/@include_plugin.*@/',$sSource,$aPlugins)找到它们

这个正则表达式提供了我想要的匹配项,但是也可以直接获取
PluginName
而不是我的解决方案,然后必须对匹配项应用子字符串吗?

您需要在正则表达式中使用捕获组。这些是通过在图案的一部分周围放置括号来创建的

因此,我们将您的
*
更改为
(.*)

检查var转储的输出,索引1处将有一个新的子数组,其中只包含插件名称

array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(27) "@include_plugin PluginName@"
  }
  [1]=>
  array(1) {
    [0]=>
    string(10) "PluginName"
  }
}

非常感谢。这就是我要找的+1个已接受(10分钟内,由于接受时间限制;))。
array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(27) "@include_plugin PluginName@"
  }
  [1]=>
  array(1) {
    [0]=>
    string(10) "PluginName"
  }
}