繁体   English   中英

Php正则表达式复数匹配

[英]Php Regular Expression Complex Matching

我正在开发一个php mvc路由系统,我需要我的路由器能够获取url的各个部分并相应地映射它,如下例所示:

url = controller/method/parameters/another/something/page/7

应映射到:

controller = controller, method = method, parameters = parameters/another/something, page = 7

目前我只能匹配

controller/method/parameter/page/7

这个正则表达式:

{controller}/{method}/{parameters:[a-z0-9-]+}/page/{page:\d+}

这转换成这种模式:

/^(?P<controller>[a-z-]+)\/(?P<method>[a-z-]+)\/(?P<parameters>[a-z0-9-]+)\/page\/(?P<page>\d+)$/

我正在使用命名捕获来获取部件。 我需要帮助正则表达式用于获得如上所述的结果。

您需要在参数的字符类中允许/ s。

/^(?P<controller>[a-z-]+)\/(?P<method>[a-z-]+)\/(?P<parameters>[a-z0-9\/-]+)\/page\/(?P<page>\d+)$/

演示: https//regex101.com/r/nX7cZ8/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM