Django url 正则表达式命中 url: *./something

Posted

技术标签:

【中文标题】Django url 正则表达式命中 url: *./something【英文标题】:Django url regex hit end of url: *./something 【发布时间】:2018-10-30 19:28:06 【问题描述】:

我在以相同字符串结尾的不同 url 上得到 404,而不是创建多个重定向,我想在最后一个字符串上捕获它们。它总是出现在同一个位置,模式是这样的:

/some-of-my-urls/the-same-string

那里没有尾随斜杠。我尝试过这样的事情:

url(r'^[a-zA-Z0-9_]+/the-same-string', redirect_func),
url(r'^./the-same-string', redirect_func),

但这不起作用。对于具有更多正则表达式知识的人来说可能很明显,我不是很先进。任何人的想法?

【问题讨论】:

试试r'^[^/]+/the-same-string',必要时添加命名捕获组。 @WiktorStribiżew:感谢 Wiktor,但它没有收到请求。 @WiktorStribiżew 现在可以了。我把它放在文件中太低了。第一条评论效果很好。谢谢。如果您想要正确答案,请转发,我会接受。 【参考方案1】:

您可以使用否定字符类 [^/] 匹配除 / 之外的任何字符,并使用匹配 1 个或多个重复的 + 量词对其进行量化:

r'^[^/]+/the-same-string'

请参阅regex demo

【讨论】:

以上是关于Django url 正则表达式命中 url: *./something的主要内容,如果未能解决你的问题,请参考以下文章

django 2.2.5 URL 路径中的 URL 正则表达式

django - 可选 url 参数的正则表达式

匹配另一个 url - 正则表达式 django urls

使用 django 的 URL 和正则表达式

django url 正则表达式不匹配

django url 正则表达式