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