Django urlconf中的正则表达式“OR”匹配,不发送匹配作为视图参数

时间:2012-04-25 04:12:10

标签: regex django http-status-code-404 urlconf

在我的Django urlconf中,我想为探测脚本的请求返回404。否则,请求不必要地访问数据库以查找相应的FlatPage,因为我正在使用FlatPage中间件。

我的问题是,以下匹配正确的模式是将{php','cgi'或'pl'作为template_name参数发送到page_not_found视图函数。

urlpatterns = patterns('',
    # don't even bother looking up a flatpage for these matches
    (r'\.(php|cgi|pl)$', 'django.views.defaults.page_not_found'), 
    ...
)

在不将匹配作为参数发送到视图的情况下,执行该正则表达式“或”逻辑的方法是什么?

2 个答案:

答案 0 :(得分:2)

非捕获组以(?:...)表示。

答案 1 :(得分:0)

您可以使用非捕获组:(?:regex)

所以你的模式是:

(r'\.(?:php|cgi|pl)$', 'django.views.defaults.page_not_found'),