2012-07-08 16 views
8

chcę URL, który akceptuje wszystkie znaki, na przykład:mieć adres URL, który akceptuje wszystkie znaki

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

dla key parametru zamiast tylko ASCII alfabetu znaków akceptuje wszystkie znaki to cyfry, symbole jak $, - , _, ..., alfabet, znaki unicode, ...

jak mogę to zrobić?

Odpowiedz

25

Kod powinien wyglądać następująco:

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

Potrzebujemy „u” na początku powiedzieć, że Pythona akceptuje ciąg znaków Unicode.

7

RegEx będzie wyglądać następująco:

(.*) 

To powinno dopasować wszystkie znaki oprócz nowych znaków linii.

0

Jak mówili inni:

(.*) 

... dopasuje wszystkie znaki, ale również dopasować pusty ciąg (co może być źle, jeśli regex jest na końcu adresu URL). Jeśli chcesz, aby wymusić wymagane jest, aby co najmniej jeden znak, a następnie użyć tego:

(.+) 

Żeby było jasne, to praca w środku adresów URL, a także na końcu, więc coś jak to działa perfekcyjnie :

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

(a jako @tsikov mówi użyciu poprzedzającego 'U' dla unikodzie)