PHP preg_match所有斜杠之间的内容


PHP preg_match Everything Between Slashes

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

我试图匹配第一个和第二个斜杠之间发生的所有事情,不包括那些斜杠,或者如果没有起始和结束斜杠,则什么都不匹配:

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

结果如下:

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

我很接近$matches[1]有我想要的结果,但它并没有将其作为第一个数组项(而是第一个捕获的子模式)进行匹配。

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

谢谢!

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

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

并使用preg_match_all而不是preg_match

PS:请注意,您也可以使用explode/分割输入,并避免完全使用regex。