Frage

Ich habe eine Web-Adresse:

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

Ich möchte in der Lage sein CompanyA zu einer Ansicht mit regulären Ausdrücken zu übergeben.

Das ist, was ich habe:

(r'^org/?P<company_name>\w+/$',"orgman.views.orgman")

und es stimmt nicht überein.

Im Idealfall ist alles URL, die wie example.com/org/X aussehen x zu der Ansicht passieren würde.

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Sie müssen die Gruppennamen in Klammern wickeln. Die Syntax für benannte Gruppen ist (?P<name>regex), nicht ?P<name>regex. Auch wenn Sie keinen Schrägstrich erfordern mögen, sollten Sie es optional machen.

Es ist einfach für reguläre Ausdrücke zu testen, mit dem Python-Interpreter passenden, zum Beispiel:

>>> 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'}

Andere Tipps

Ihre regex ist nicht gültig. Es sollte wohl aussehen

r'^org/(?P<company_name>\w+)/$'

Es sollte eher wie r'^org/(?P<company_name>\w+)' aussehen

>>> r = re.compile(r'^org/(?P<company_name>\w+)')
>>> r.match('org/companyA').groups()
('companyA',)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top