我想在给定的分隔符(斜杠)之间捕获URL中的所有组,但似乎无法找到解决方案,因为完全匹配始终包含分隔符。
示例:
http://www.example.com/**captureme**/**capturemetoo**/**capturemeaswell**/notme.php
如果我使用简单的正则表达式,例如#\/(.*?)\/#
,我会得到#34; captureme"和" capturemeaswell"但我很遗憾" capturemetoo"。
困难在于捕获的块的长度可能会有所不同,例如我们也可以:
http://www.example.com/group1/group2/group3/group4/group5/page.php
每个群体都需要被捕获。
答案 0 :(得分:1)
你可以通过以下方式完成
$re = '/([^\/]+\/)/';
$str =
'http://www.example.com/group1/group2/group3/group4/group5/page.php';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
// pop the first 2 matches
var_dump(array_slice($matches,2));
它会匹配http和域,但可以使用切片
删除 中查看