Regex 预匹配页码

Regex 预匹配页码,regex,preg-match,Regex,Preg Match,我一直在尝试一些表达式来实现这一点,但没有找到一个有效的 我想用正则表达式将/search/test/2转换为(php)/search/$query/$page 这是我能想到的唯一方法,/^\/search\/(.*)(\/(\d*))?/,但它不起作用,因为我需要页码和/之前的页码是可选的 有没有人知道一种方法可以获得一个只有我需要的信息的pre_match数组 提前感谢。试试这个: /^\/search\/(?<query>[^\/]*)(?:\/(?<page>\d

我一直在尝试一些表达式来实现这一点,但没有找到一个有效的

我想用正则表达式将
/search/test/2
转换为(php)
/search/$query/$page

这是我能想到的唯一方法,
/^\/search\/(.*)(\/(\d*))?/
,但它不起作用,因为我需要页码和/之前的页码是可选的

有没有人知道一种方法可以获得一个只有我需要的信息的pre_match数组

提前感谢。

试试这个:

/^\/search\/(?<query>[^\/]*)(?:\/(?<page>\d*))?/
/^\/search\/(?[^\/]*)(?:\/(?\d*))/
可以选择在末尾添加
\/?
,以捕获尾部斜杠

preg_match('@^/search/([^/]+)(?:/(\d+))?$@', $string, $matches)