2009-11-02 41 views
0

討厭想出頭銜。我需要的東西,實際上會捕獲以下:正則表達式幫助:匹配路徑(使用django)

site.com/500/(一個號碼作爲第一個參數)

site.com/500/ABC/(數字和3個字母代碼)

site.com/500/ABC/DEF/(數字和2個3個字母代碼)

我已經搞亂:

^(\d+/)?(\w{3}/)?(\w{3}/)?$

這種工作,但包括參數中的斜槓(所以我最終以「500 /」)。移動括號外的斜線不符合/ 500/ABC /自從?只適用於斜線。

很明顯,我可以在多個,但我相信有一種方法可以一氣呵成。

同樣,我只想要實際的參數,因爲正如我所說,它可以工作,但最終會向它們添加斜槓,這不太好。

感謝您的任何幫助。

+1

請記住,您可以嵌套組 - 這樣你就可以有'((\ w {3})/ )?'等等。 – Amber 2009-11-02 11:33:51

+0

呃..似乎工作。不知道爲什麼我以前沒有嘗試過,謝謝一堆。 – damnitshot 2009-11-02 11:45:21

回答

1

怎麼樣..

((\d+/)|(\d+/\w{3}/)|(\d+/\w{3}/\w{3}/))$ 

結果將是..

site.com/500/ABC/DEF/ => 500/ABC/DEF/ 
site.com/500/ABC/ => 500/ABC/ 
site.com/500/ = 500/ 
+0

這似乎工作,但似乎沒有在我測試過的django中工作得很好。我應該在原文中指定它,但也要感謝您的幫助。 – damnitshot 2009-11-02 11:44:19