我要接受所有的字符,例如URL的鏈接:有接受所有字符
(r'^company/(?P<key>[a-zA-Z]+)/doclist/$','CompanyHub.views.docList')
爲key
參數,而不是僅僅ASCII字母字符它接受所有字符包括數字,符號如$, - ,_,...,字母,unicode字符,...
我該怎麼做?
我要接受所有的字符,例如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)