PHP preg_match斜杠之间的一切

时间:2014-10-29 18:56:35

标签: php regex preg-match

我需要一个正则表达式向导的帮助,或者比我更了解这一点的人(这意味着有很多候选人:)

我正在尝试匹配第一个和第二个斜杠之间发生的所有事情,不包括那些斜线,如果没有开始和尾部斜杠,则没有任何内容:

$subject = '/1234-abcd/blahblah';
$pattern = '/^\/(.*)\//';
preg_match($pattern, $subject, $matches);
print_r($matches);

结果如下:

Array
(
    [0] => /1234-abcd/
    [1] => 1234-abcd
)

我关门了。 $ matches [1]的结果是我之后的结果,但是它不匹配它作为它的第一个数组项(而是第一个捕获的子模式)。

如何在此正则表达式模式中排除起始斜杠和尾部斜杠?

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用此正则表达式:

$pattern = '#(?<=/)[^/]+#';

并使用preg_match_all代替preg_match

PS:请注意,您也可以使用explode/拆分输入,并避免完全使用正则表达式。