PHP preg_match斜杠之间的一切

wpd*_*mon 2 php regex preg-match

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

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

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

结果如下:

Array
(
    [0] => /1234-abcd/
    [1] => 1234-abcd
)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

anu*_*ava 5

你可以使用这个正则表达式:

$pattern = '#(?<=/)[^/]+#';
Run Code Online (Sandbox Code Playgroud)

并使用preg_match_all而不是preg_match

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