2011-03-30 72 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,它也会处理尾随的反斜杠。