在Django URL中允许 /

2 投票
3 回答
1778 浏览
提问于 2025-04-15 16:02

我想做一个维基网站,每个网址都得有一个对应的视图。每个网址可以包含字母(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.,/_\-]+)/$'

撰写回答