2012-07-10 96 views
1

我试图创建一个正则表达式可以包含一些这三个要素的0 ... X倍:正则表达式:重复匹配

/CAT1/VAR1

/CAT2/VAR2

/CAT3/VAR3

这是我走到这一步:

((cat1|cat2|cat3)/(?P<var>\w+))* 

在该样本串它只有匹配的第一次出现:http://url.dev/cat1/aaaaa/CAT1/BBBBB/CAT2/CCCCC

在此示例中也有两个出现我想知道它是否有可能收获这两个价值。

什么,我想配几样:

http://url.dev/cat1/aaaaa/cat1/bbbbb/cat2/ccccc/cat3/ddddd/cat3/eeeee

http://url.dev/cat1/aaaaa

http://url.dev/cat2/aaaaa/cat3/bbbbb

回答

0

可能你只是用

(cat\d/(?P<var\d>\w+))* 

它会匹配所有的猫的/ var OCCURENCES

[编辑]

所以是:

/(cat\d\/\w+)/g 
+0

谢谢,我也试过,但它不匹配它的http: //regexr.com?31g39 – Roch 2012-07-10 08:32:02

+1

也许你不想保留“int”的值?如果不尝试更简单http://gskinner.com/RegExr/?31g3o – Arcadien 2012-07-10 08:53:01