有一个接受所有字符的网址

时间:2012-07-08 15:43:38

标签: python django

我想要一个接受所有字符的网址,例如:

(r'^company/(?P<key>[a-zA-Z]+)/doclist/$','CompanyHub.views.docList')

用于key参数而不仅仅是ascii字母字符它接受所有字符包括数字,符号,如$, - ,_,...,字母,unicode字符,......

我该怎么做?

3 个答案:

答案 0 :(得分:34)

您的代码应如下所示:

(ur'^company/(?P<key>.*)/doclist/$','CompanyHub.views.docList')

我们在开头需要'u'告诉python该字符串接受unicode字符。

答案 1 :(得分:13)

RegEx看起来像这样:

(.*)

这应匹配除换行符之外的所有字符。

答案 2 :(得分:2)

正如其他人所说:

(.*)

...将匹配所有字符,但它也会匹配一个空字符串(如果正则表达式位于URL的末尾,则可能是错误的)。如果要强制至少需要一个字符,请使用:

(.+)

为了清楚起见,这些工作在URL的中间以及最后,所以像这样的工作完全正常:

url(ur'^package\/(?P<pkgname>.+)\/(?P<pkgversion>.+)', ... )

(正如@tsikov所说,使用前面的&#39; u&#39;作为unicode)