2012-07-08 70 views
8

我要接受所有的字符,例如URL的鏈接:有接受所有字符

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

key參數,而不是僅僅ASCII字母字符它接受所有字符包括數字,符號如$, - ,_,...,字母,unicode字符,...

我該怎麼做?

回答

25

您的代碼應該是這樣的:

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

我們所需要的「U」開頭來告訴Python,字符串接受Unicode字符。

7

正則表達式應該是這樣的:

(.*) 

這應該匹配除了換行字符的所有字符。

0

正如其他人所說:

(.*) 

...會匹配所有字符,但(如果正則表達式是在URL的末尾,這可能是壞的),它也將匹配空字符串。如果您想強制,要求至少一個字符,然後使用此:

(.+) 

只是要清楚,這些工作在URL中的中間和結尾,所以這樣的工作完全正常:

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

(以及如@tsikov說,使用前述的 'U' 的Unicode)

相關問題