preg_match只给出一个匹配

Yeh*_*tan 2 php regex preg-match

我正在尝试创建一个url处理程序,我尝试使用preg_match来查找变量.所以这是在变量替换url格式后得到的preg_match(例如:post /%id%/%title%) -

preg_match("/post\/[0-9]+\/[a-z-?-?-]+/i","post/5/lol",$match);
Run Code Online (Sandbox Code Playgroud)

我的问题是$ match只返回这个内部数组 -

"后/ 5 /笑"

而不是像那样的阵列 -

Array ( 
        [0] => "post/5/lol",
        [1] => "5",
        [2] => "lol"
      )
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我,找出为什么它只返回一个匹配?

Tim*_*per 6

用括号包裹您想要捕获的每个段,创建子表达式:

preg_match("/post\/([0-9]+)\/([a-z-?-?-]+)/i", "post/5/lol", $match);
Run Code Online (Sandbox Code Playgroud)