在Django URL中允许 /
我想做一个维基网站,每个网址都得有一个对应的视图。每个网址可以包含字母(A-Z, a-z
)、数字和一些标点符号('.', ',', '/', '-', '_'
)。我该怎么写这个表达式呢?
我想要的效果是这样的:
(r'^(?P<wiki_page>\w+)/$', 'www.wiki.views.page')
但是这个只适用于字母、数字和'_'。
3 个回答
0
我觉得这更像是一个正则表达式的问题。
r'^(?P<wiki_page>[\w\.,_/\-]+)/$'
你可以在已有的字符类基础上构建新的字符类。
我认为你需要对连字符进行转义,或者把它放在最后,因为连字符用来表示字符范围,如果不小心使用,可能会产生意想不到的效果。
1
你可以把正则表达式中的 \w 替换成一个可以匹配你想要的内容的正则表达式。比如说:
(r'^(?P<wiki_page>[A-Za-z_/,\.-]+)$, 'www.wiki.views.page')
或者类似的方式。
5
试试这个正则表达式:
r'^(?P<wiki_page>[\w.,/_\-]+)/$'