用于 Django View 的复杂 Python Regex



URL结构看起来喜欢这个:<domain>/<version>/<collection>/<sub-collection>/<page>域是任何a-zA-Z0-9-_,版本是任何a-zA-Z0-9-_.(但可能只是1.01.12.0.0等),集合和子集合都是遵循<domain>约束的可选组。

当前的正则表达式是:r'^(?P<domain_slug>[a-zA-Z0-9-_]*)/(?P<version_slug>[a-zA-Z0-9-_.]*)/(?P<slug>[a-zA-Z0-9-_]+)/$

如何捕获可选位置,确保最后一个段始终是页面?

此外,这甚至是一个好主意吗?通过 Django URL conf 传递它并让视图函数处理所有工作会更好吗?

示例网址可能包括:
administration/5.0.3/reset-user-password
user/1.0/getting-started/setting-up-an-account
development/3.2/authentication/acl/creating-aco

(.*/)([^/]*)$会将页面放入 2 美元,而您必须以 1 美元解析的内容。

OP补充说:

以上起到了作用。作为参考,完整的正则表达式变成了(多行以提高可读性):

^(?P<domain>[a-zA-Z0-9_-]*)/ (?P<version>[a-zA-Z0-9-_.]*)/ (?P<collections>.*)/ (?P<page>[^/]*)$

最新更新