2012-06-08 30 views
2

我知道捕獲括號的子表達式在後面的引用編號中被計數,即使它們在可選部分中不匹配,但是當它們處於交替分支中時呢?威爾(亞當)|(前夕)在1日或在2日前,或亞當或在1日前夕?交替捕獲

是否所有捕獲的小括號仍然從左到右依次計數或在編號中將這兩個數字統一爲一個?如果是這樣,當你在選項中有不同數量的捕獲時會發生什麼,如(god)|(adam)&(eve)?

我想捕捉的值以「」「」或其周圍什麼都沒有,這是我所:

(['"])(.*?)\1|([^'"]+) 

回答

2

的反向引用計數括號的數量,不管有多少他們已被匹配。

所以,在(god)|(adam)&(eve)

\ 1 - 「神」 或空
\ 2 - 「亞當」 或空
\ 3 - 「前夕」 或空

見這裏:http://jsfiddle.net/MnASH/