2012-07-10 71 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