我需要与以下内容匹配的路由器的URL模式:
/page_name.html
/page_name.html/1
/page_name.html/2
....
/page_name.html/999preg_match()必须将page_name放入matches1中,然后将数字斜杠放入匹配的2中。
我需要这个和我的爸爸不一样:
/page_name.html/
/page_name.html131我写了这个:
^\/([\w\-]+)\.html[\/]?([\d]{1,3})?$/但是它计算了像/page_name.html123这样的URL,如果没有数字,就不会将任何内容放入matches2中。
发布于 2016-02-01 19:02:58
您可以使用这个regex:
preg_match('~^/([\w-]+)\.html(?|/(\d{1,3})|())$~', $matches, $input);(?|...) -在此构造的每个选项中声明的子模式将从相同的索引开始。这是为了确保始终用一些东西填充$matches[2],甚至是空字符串。https://stackoverflow.com/questions/35138137
复制相似问题