我清理了一个URL,看起来像这样:
/foo/bar
我试过了:
preg_match('#([a-zA-z0-9]+)#', $path, $matches);
但$ match输出为:
Array
(
[0] => /foo
[1] => foo
)
可以使用什么正则表达式(即使用preg_match()
)来获取foo
和bar
?
答案 0 :(得分:2)
你最好使用爆炸:
print_r(explode('/',ltrim('/foo/bar','/')));
但如果你想用正则表达式做这件事(非常糟糕),只需使用preg_match_all()
:
preg_match_all('/([a-zA-Z0-9]+)/','/foo/bar', $matches);
echo '<pre>';
print_r($matches[0]);
有关详细信息,请查看:http://nl3.php.net/manual/en/function.preg-match-all.php 两者都导致:
Array
(
[0] => foo
[1] => bar
)
答案 1 :(得分:1)
使用PHP explode():
$arr = explode('/', substr($str,1) );
返回
Array(
[0] = 'foo';
[1] = 'bar'
)