有接受所有字符
问题描述:
我要接受所有的字符,例如URL的链接:有接受所有字符
(r'^company/(?P<key>[a-zA-Z]+)/doclist/$','CompanyHub.views.docList')
为key
参数,而不是仅仅ASCII字母字符它接受所有字符包括数字,符号如$, - ,_,...,字母,unicode字符,...
我该怎么做?
答
您的代码应该是这样的:
(ur'^company/(?P<key>.*)/doclist/$','CompanyHub.views.docList')
我们所需要的“U”开头来告诉Python,字符串接受Unicode字符。
答
正则表达式应该是这样的:
(.*)
这应该匹配除了换行字符的所有字符。
答
正如其他人所说:
(.*)
...会匹配所有字符,但(如果正则表达式是在URL的末尾,这可能是坏的),它也将匹配空字符串。如果您想强制,要求至少一个字符,然后使用此:
(.+)
只是要清楚,这些工作在URL中的中间和结尾,所以这样的工作完全正常:
url(ur'^package\/(?P<pkgname>.+)\/(?P<pkgversion>.+)', ...)
(以及如@tsikov说,使用前述的 'U' 的Unicode)