2016-05-02 18 views
1

Wenn ich runserver versuchen, gibt es einen Fehler in diesem regulären Ausdruck:Regulärer Ausdruck Python Django url

url(r'^articles/get/(?<article_id>)\d+/$', views.article) 

Können Sie mir bitte erklären, - wo ich falsch war?

+1

^^ artikel/get/(? P \ d +)/$ '- Das' P' fehlt. –

Antwort

2

Sie müssen für

^articles/get/(?P<article_id>\d+)/$ 
       ^   ^^^^ 

Siehe regex demo

Die erste Ausgabe der Suche ist, dass Sie richtig eine benannten Capture-Gruppe zu verwenden, fehlgeschlagen ist, und das zweite Problem ist, dass Sie nicht alles erfassen haben durch Setzen Sie die Schließung ) direkt nach dem Gruppennamen, während Sie 1 + Ziffern mit der \d+ in die article_id Gruppe erfassen möchten.

Auch kann einiger Bezug auf den genannten Gruppen here finden:

(?P<name>...)
ähnlich wie reguläre Klammern, aber die von der Gruppe abgestimmt String ist über den symbolischen Gruppennamen Namen zugänglich.

+0

Großartiger Link, danke! – goodgrief

+0

Ja, zum Testen von Python regex, regex101.com ist gut, aber es gibt immer noch Fehler. Für den aktuellen Ausdruck funktioniert es wie gezeigt. Stellen Sie sicher, dass Sie das Muster tatsächlich in der realen Umgebung testen, wenn Sie anspruchsvollere Muster verwenden. –