我需要正则表达式向导的帮助,或者比我更了解这一点的人的帮助(这意味着有很多候选者:)
我试图匹配第一个和第二个斜杠之间发生的所有事情,不包括那些斜杠,或者如果没有起始和结束斜杠,则什么都不匹配:
$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。