我想要一个接受所有字符的网址,例如:
(r'^company/(?P<key>[a-zA-Z]+)/doclist/$','CompanyHub.views.docList')
用于key
参数而不仅仅是ascii字母字符它接受所有字符包括数字,符号,如$, - ,_,...,字母,unicode字符,......
我该怎么做?
答案 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)