gpt4 book ai didi

python - 停止捕获基于 Django 中的 url 的任何字符串(正则表达式)

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:07 24 4
gpt4 key购买 nike

所以我正在使用 Django 构建网络服务,但我在 Urls 中遇到了正则表达式问题。

我想转到 localhost/user/USERNAME/products/,其中用户名可以是任何字符,而不仅仅是\w。我试着用这个捕捉它:

('^user/(?P<username>.+)/$', 'user'),
('^user/(?P<username>.+)/products/$', 'get_products'),

但是它会捕获用户名“USERNAME/products”并将其发送给用户。对于除零以外的任何长度,我应该如何说除前斜杠之外的每个可能的字符?

最佳答案

使用 [^/]+ 而不是 .+

正如 Chris Pratt 在下面指出的那样,.+? 也可以工作,因为它是一个“非捕获”正则表达式,它将匹配任何字符,直到匹配到以下子表达式。在可能的情况下,我通常更喜欢普通的急切解决方案而不是非捕获解决方案,因为它们不引入多个评估规则。

关于python - 停止捕获基于 Django 中的 url 的任何字符串(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com