2012-07-08 29 views
8

Ben örneğin, tüm karakterleri kabul eden bir url istemek kabul eden bir url var:tüm karakterleri

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

sadece tüm karakterlerin numaraları dahil kabul alfabetik karakterler ASCII, semboller $ gibi, - , _, ..., alfabe, unicode karakterler, ...

Bunu nasıl yapabilirim?

cevap

25

Kodunuz gibi görünmelidir:

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

Biz dize unicode karakterleri kabul ettiğini piton anlatmaya başında 'u' gerekir.

7

RegEx şu şekilde görünecektir: Yeni hat karakterleri dışındaki tüm karakterleri aynı olmalıdır

(.*) 

.

0

Diğerleri söylediler:

(.*) 

... tüm karakterleri maç olacak, ama (regex bir URL'nin sonunda ise kötü olabilir) aynı zamanda boş bir dize eşleşir. Eğer en az bir karakter gereklidir zorlamak istiyorsanız, o zaman bu kullanın:

(.+) 

Daha açıkçası, böyle bu URL'lerin ortasında yanı sıra sonunda, işleri, bir şey mükemmel çalışıyor :

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

(ve @tsikov söylediği gibi, kullandığınız bir 'u' unicode için önceki)

İlgili konular