Django中的非捕获可选URL元素

And*_*uss 2 python regex django urlconf

我正在使用Django并希望匹配URL domain.com/wdomain.com/words.我有一个表单的配置行:

url(r'^w(ords)?$', 'app_name.views.view_words')
Run Code Online (Sandbox Code Playgroud)

view_words只接受一个参数(request),但似乎Django捕获(ords)正则表达式的一部分并将其传递给视图.当我(ords)从正则表达式和访问中删除时domain.com/w,它正常工作.

Django文档和类似StackOverflow的问题,包括如何捕捉可选的URL参数,但我并不想捕捉从URL的参数.有没有办法匹配URL的可选元素而不将其作为参数捕获?

sk1*_*k1p 8

是的,使用非分组括号,(?:...)如下所示:

url(r'^w(?:ords)?$', 'app_name.views.view_words')
Run Code Online (Sandbox Code Playgroud)

另请参阅python正则表达式文档