2010-09-09 5 views
20

Dans Django ce qui est le modèle d'URL que je dois utiliser pour gérer les caractères de UrlEncode tels que% 20modèle url django pour% 20

J'utilise (?P<name>[\w]+) mais cela ne traite que des caractères alphanumériques si% provoque une erreur

Répondre

25

J'ai été en mesure de le faire fonctionner en utilisant la configuration donnée ci-dessous. Vérifiez si cela va répondre à vos besoins.

(?P<name>[\w|\W]+) 
+0

+1 Oui, oui, c'est un espace pas un pourcentage ... mon mauvais. –

+1

cela ne correspond pas à tous les caractères de mot et tous les caractères non-mot? ne serait pas "." être beaucoup plus facile – JKirchartz

+0

@JKirchartz C'est équivalent à mon humble avis, mais aussi tout aussi dangereux pour la même raison. –

20

Si vous voulez seulement laisser un espace:

(?P<name>[\w\ ]+) 
+0

Merci! Cela a fonctionné pour moi. – Jake

+0

Beaucoup mieux que de permettre tous les caractères non-mot. Je vous remercie. –

+0

C'est la meilleure réponse, je pense: le plus restrictif, mais permet toujours l'espace –

1

La meilleure façon de le faire et permettre aux autres CARactère utilise « l \ » qui est des espaces, des onglets et des nouvelles lignes

(?P<name>[\w\s]+) 
+0

% 20 est l'espace, je ne voudrais pas permettre des onglets ou de nouvelles lignes ou de nouvelles lignes douces, etc –