如何在正斜杠之后获取文本(直到下一个正斜杠或字符串结尾)?

时间:2014-05-24 19:46:04

标签: php regex preg-match

我清理了一个URL,看起来像这样:

/foo/bar

我试过了:

preg_match('#([a-zA-z0-9]+)#', $path, $matches);

但$ match输出为:

Array
(
    [0] => /foo
    [1] => foo
)

可以使用什么正则表达式(即使用preg_match())来获取foobar

2 个答案:

答案 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'
)