10
votes

Utilisation d'une expression régulière Python à Django

J'ai une adresse Web:

http://www.example.com/org/companya

Je veux pouvoir transmettre la société à une vue en utilisant des expressions régulières.

C'est ce que j'ai: xxx

et il ne correspond pas.

Idéalement de toutes les url qui ressemblent à l'exemple. com / org / x passerait x à la vue.

Merci d'avance!


0 commentaires

3 Réponses :


1
votes

Il devrait ressembler davantage à ce que r '^ org / (? p \ w +)' xxx


0 commentaires

2
votes

Votre regex n'est pas valide. Il devrait probablement ressembler à xxx


0 commentaires

20
votes

Vous devez envelopper le nom de groupe entre parenthèses. La syntaxe des groupes nommés est (? P regex) code>, pas ? P regex code>. De plus, si vous ne voulez pas nécessiter une barre oblique de fin, vous devez le rendre facultatif.

Il est facile de tester la correspondance d'expression régulière avec l'interpréteur Python, par exemple: P>

>>> import re
>>> re.match(r'^org/?P<company_name>\w+/$', 'org/companyA')
>>> re.match(r'^org/(?P<company_name>\w+)/?$', 'org/companyA')
<_sre.SRE_Match object at 0x10049c378>
>>> re.match(r'^org/(?P<company_name>\w+)/?$', 'org/companyA').groupdict()
{'company_name': 'companyA'}


1 commentaires

C'est génial. Je cherchais quelque chose comme ça en ligne!