请告诉我为什么我的正则表达式无法解析,我只是从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])/$
^ ^
- 要匹配一个或两个数字,需要使用语法
d{1,2}
。d[1,2]
将匹配任何数字,后跟1
、逗号或2
- 正则表达式需要一个尾部斜杠,而您的输入似乎没有
类似的东西
^time/plus/(d{1,2})/?$
可能会起作用。