【问题标题】:Django URL regex to accept no number or any number till 99Django URL 正则表达式不接受任何数字或任何数字,直到 99
【发布时间】:2012-11-13 11:05:09
【问题描述】:

我有一个这样的网址

test/report 

test/report/1

我想用 django 写一个匹配的 url 正则表达式

我试过了

 url(r'^test/report/(0?\d+)/$'

但它不起作用。任何人都可以知道如何做到这一点?提前谢谢你。

【问题讨论】:

    标签: python regex django


    【解决方案1】:

    您只需要创建两个正则表达式,一个不带斜线,另一个包括斜线:

    url(r'^test/report$'
    
    url(r'^test/report/(\d\d?)$
    

    【讨论】:

    • 那是做不到的。嗯,只允许单个视图的单个 url。谢谢。
    • 什么禁止你为两种模式指定 same 视图?看这里:djangobook.com/en/2.0/chapter08.html
    • 虽然网址会重复,但他似乎有点意思
    【解决方案2】:

    lenik 的答案通常是正确的方法,但如果你必须在一个正则表达式中使用它,你应该可以使用这个:

    url(r'^test/report(/\d\d?)?$')
    # Meaning:
    # (   Start contents of a node
    # /   A slash
    # \d  A digit
    # \d? A second digit, or nothing
    # )?  Finish node. Must find everything in the node, or nothing
    

    【讨论】:

      【解决方案3】:

      你能改用url(r'^test/report/\d{1,2}/$'吗?

      【讨论】:

      • 使用这种模式啊 Evlikosh 提到我们不能使用测试/报告它会失败,并且您的语法缺少括号。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多