我一直在尝试一些表达方式,但没有找到一个有效的方法。
我想用正则表达式将/search/test/2
转换为(php)/search/$query/$page
。
这是我能想到的唯一方法,/^\/search\/(.*)(\/(\d*))?/
并且它不起作用,因为我需要页码和之前的/是可选的。
有没有人知道如何通过pre_match获取只获取我需要的信息的数组。
提前致谢。
答案 0 :(得分:1)
试试这个:
/^\/search\/(?<query>[^\/]*)(?:\/(?<page>\d*))?/
可选择在末尾添加\/?
以捕获尾随斜杠。
答案 1 :(得分:0)
preg_match('@^/search/([^/]+)(?:/(\d+))?$@', $string, $matches)