PHP正则表达式未按预期工作

PHP正则表达式未按预期工作,php,regex,Php,Regex,我有一个文件的路径,我想用正则表达式提取它的一部分。 但是这个模式似乎是错误的,它只给了我最后一场比赛 $s = 'engine/plugins/renderer_smarty/plugins/css_minify/'; preg_match('@^engine/(plugins/(.+?)/)+$@i',$s,$matches); 结果: array (3): 0 => string (50): "engine/plugins/renderer_smarty/plugins/c

我有一个文件的路径,我想用正则表达式提取它的一部分。 但是这个模式似乎是错误的,它只给了我最后一场比赛

$s = 'engine/plugins/renderer_smarty/plugins/css_minify/';
preg_match('@^engine/(plugins/(.+?)/)+$@i',$s,$matches);
结果:

array (3):
    0 => string (50): "engine/plugins/renderer_smarty/plugins/css_minify/"
    1 => string (19): "plugins/css_minify/"
    2 => string (10): "css_minify"
预期结果:

array (5):
    0 => string (50): "engine/plugins/renderer_smarty/plugins/css_minify/"
    1 => string (24): "plugins/renderer_smarty/"
    2 => string (15): "renderer_smarty"
    3 => string (19): "plugins/css_minify/"
    4 => string (10): "css_minify"
图案有什么问题

谢谢

您可以使用

preg_match_all('@(?<=/)plugins/([^/]+)@i',$s,$matches);

<代码> PrggMatMatyALL(“刚才”代码> PrggMatMatyALL(@)?(谢谢),这是解决方案!我不知道只有最后一次迭代被存储。很高兴它对您有用。请考虑通过单击✓ 在左边(参见)。