Python 从werkzeug/Flask路由规则捕获类型和/或参数化路径的规则
我有一套烧瓶路线Python 从werkzeug/Flask路由规则捕获类型和/或参数化路径的规则,python,regex,flask,routing,werkzeug,Python,Regex,Flask,Routing,Werkzeug,我有一套烧瓶路线 /<string:name>/<path:id>/ /<name>/<path:id>/ /<string:name>/<id>/ 对于所有的路径(一个正则表达式来管理所有的路径),使用具有类型的路径:pathlike/,以及那些没有类型的路径like/ 但我正在尝试: (<(.*?\:)?(.*?)>) () 哪一个只能匹配 /{name}/{id}/ /{id}/ # <--
/<string:name>/<path:id>/
/<name>/<path:id>/
/<string:name>/<id>/
对于所有的路径(一个正则表达式来管理所有的路径),使用具有类型的路径:pathlike/
,以及那些没有类型的路径like/
但我正在尝试:
(<(.*?\:)?(.*?)>)
()
哪一个只能匹配
/{name}/{id}/
/{id}/ # <--- Why this is not matching /{name}/{id}/
/{name}/{id}/
/{name}/{id}/
/{id}/#我建议使用
(<([^<>]*:)?([^<>]*)>)
()
这个。不确定您是否真的需要外部(…)
(仅当您将其与re.findall
一起使用时,但您可以删除它们并使用re.finditer
并使用match.group(0)
访问所有匹配项)
说明:
无法按预期工作?我刚刚删除了\:()上的冗余转义是的,我在初始演示中保留了它,但是:
不是特殊字符,因此可以取消转义。
(<([^<>]*:)?([^<>]*)>)