2011-03-30 74 views
0

我要打幾個paramters可選使用可選參數

目前我的URL正則表達式是

的http:// [ip地址]/StoreData/10/20/30/40/50

因爲有5個編號參數,現在有時我想4或有時5

即 HTTP:// [IPADDRESS]/StoreData/10/20 /四十零分之三十零

應該是可以接受

這是我的正則表達式

(?P<dataone>([0-9])+)/(?P<datatwo>([0-9])+)/(?P<datathree>([0-9])+)/(?P<datafour>([0-9])+)/(?P<datafive>([0-9])+)/ 
+0

您的示例無效,因爲您的正則表達式最後需要'/',但示例字符串沒有。 – 2011-03-30 06:58:52

+0

好,如果我不使用斜線,那麼它也在工作 – Hunt 2011-03-30 07:43:42

+0

啊,真的。這是因爲正則表達式沒有以'$'結尾。 – 2011-03-30 08:12:24

回答

4

?改性劑使得一部分正則表達式可選:

(?P<dataone>([0-9])+)/(?P<datatwo>([0-9])+)/(?P<datathree>([0-9])+)/(?P<datafour>([0-9])+)/((?P<datafive>([0-9])+)/)? 

注意圍繞「datafive」子模式的(...)?

+1

這不會讓斜槓成爲強制性的嗎? – 2011-03-30 07:22:23

+0

是的,這就是爲什麼我在評論中詢問斜槓的原因。 – 2011-03-30 08:12:02

0
StoreData/(?P<dataone>([0-9])*)/(?P<datatwo>([0-9])*)/(?P<datathree>([0-9])*)/(?P<datafour>([0-9])*)/?(?P<datafive>([0-9])*)/?$ 

將是必需的正則表達式。如果需要,轉義正則表達式。

回答Petri Lehtinen和Lasse V. Karlsen,它也會處理尾隨的反斜槓。