re_path未解析正则表达式(\d[1,2])



请告诉我为什么我的正则表达式无法解析,我只是从Django的一本书中复制并粘贴,并试图传递参数re_path(r'^time/plus/(d[1,2])/$', hours_ahead)。只是试图将参数additional hours传递到当前时间。

http://127.0.0.1:8000/time/plus/2

然后我得到了页面未找到(404(错误。当前路径time/plus/2与这些路径都不匹配。

我不明白这里的问题是什么。请帮忙,谢谢。

这是因为如果你只需要像这样的一个和两个数字,这是错误的正则表达式,所以没有必要像这样指定

case 1:
only 1 and 2 is accept
want:time/plus/2/ --pass
want:time/plus/1/ --pass
want:time/plus/3/ --fail
regex: r'^time/plus/[1,2]/$'
case 2:
length of that is 1 or 2 
want:time/plus/2/ --single digit -pass
want:time/plus/33/ --two digit -pass
want:time/plas/333/ --three digit -fail 
regex: r'^time/plus/d{1,2}/$'

PATH必须在/你必须这样写路径http://127.0.0.1:8000/time/plus/2/或者您修改您的regex删除/$在最后和您的上一个路线http://127.0.0.1:8000/time/plus/2可以工作

正则表达式存在一些问题:

^time/plus/(d[1,2])/$
^     ^
  1. 要匹配一个或两个数字,需要使用语法d{1,2}d[1,2]将匹配任何数字,后跟1、逗号或2
  2. 正则表达式需要一个尾部斜杠,而您的输入似乎没有

类似的东西

^time/plus/(d{1,2})/?$

可能会起作用。

相关内容

  • 没有找到相关文章

最新更新