Django URL正则表达式:使URL容忍int或float值

2024-05-16 16:02:18 发布

您现在位置:Python中文网/ 问答频道 /正文

url格式为: 域/起始值/结束值/内容

在这里,startValue和endValue取整型或浮点型。。在

我试过了: /(\d+)/(\d+)它接受int值

以及:

/(\d+\.\d+)/(\d+\.\d+)它接受浮点值

但不知道如何将它们组合在一起这需要两种格式的数字

尝试过:

 /(\d+)|(\d+\.\d+)/(\d+)|(\d+\.\d+)

被浏览器告知url与视图函数参数不匹配

谢谢你的建议!在


Tags: 视图url内容格式浏览器数字函数参数建议
3条回答

因为您总是从int开始,所以只需使用?regex运算符将float部分设为可选,并使用非捕获组:

intorfloat_re = "(\d+(?:\.\d+)?)"

…并使用您的url定义。在

您试图从正则表达式匹配中返回太多组。试试这个:

(\d?\.\d+|\d+)

这将匹配0-1个数字,然后是a.,然后是一个或多个数字。它也会先获取浮点值,这样就不会得到第一个数字而不是浮点值。在

我知道这是已经回答和接受,但寻找正确的正则表达式,这一个通过了我的道路。 所以在给出和接受的答案上稍作调整:

使用

intorfloat_positiveornegative_re = "(-?\d+(?:\.\d+)?)"

如果您希望它同时接受负整数或正整数或浮点数

顺便说一下,我把这个答案和这个问题的答案结合起来:Regex to match a negative number in Django URL dispatcher?

相关问题 更多 >