2012-07-08 9 views
8

Quiero una dirección URL que acepta todos los caracteres, por ejemplo:tienen una URL que acepta todos los caracteres

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

para key parámetro en lugar de sólo ASCII caracteres alfabéticos Se acepta todos los caracteres son números, símbolos, como $, - , _, ..., alfabeto, caracteres Unicode, ...

¿cómo puedo hacer esto?

Respuesta

25

El código debería tener este aspecto:

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

necesitamos la 'U' al principio de decir que la cadena pitón acepta caracteres Unicode.

7

RegEx se vería así:

(.*) 

Eso debe coincidir con todos los caracteres excepto caracteres de nueva línea.

0

Como han dicho otros:

(.*) 

... coincidirá con todos los personajes, sino que también coincide con una cadena vacía (que podría ser malo si la expresión regular se encuentra al final de una URL). Si desea forzar se requiere que al menos un carácter, a continuación, utilice la siguiente:

(.+) 

Para que quede claro, éstos trabajan en el medio de las direcciones URL, así como al final, así que algo como esto funciona perfectamente bien :

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

(y, como dice @tsikov, utilice un precedente 'u' para unicode)

Cuestiones relacionadas