目前我有三个映射到 ServiceHandler 的 URL 路径。如何将这三个组合成一个可以将 n 个参数传递给 ServiceHandler 的简洁正则表达式?
(r'/s/([^/]*)', ServiceHandler),
(r'/s/([^/]*)/([^/]*)', ServiceHandler),
(r'/s/([^/]*)/([^/]*)/([^/]*)', ServiceHandler)
请您参考如下方法:
(r'^/s/(([^/]*)((/[^/]+)*))$', ServiceHandler)
应该匹配任意数量的
/s/foo/bar/baz/to/infinity/and/beyond/
您还可以通过执行以下操作将其限制在一个范围内
^/s/(([^/]*)((/[^/]+){0,2}))$
它只会匹配像这样的东西
/s/foo/bar/baz
/s/foo/bar
/s/foo
但不是
/s/foo/bar/baz/pirate
/s
