捕捉交替

时间:2012-06-08 03:54:24

标签: regex

我知道捕获括号的子表达式在后面的参考编号中计算,即使它们位于不匹配的可选部分中,但是当它们处于交替的分支时呢? Will(亚当)|(前夕)在\ 1或者前夕在\ 2中给亚当,或者在\ 1中给亚当或者前夕?

所有捕获 - 括号是否仍然从左到右计数或者这两个在编号中计为一个?如果是这样,当你在选择中有不同数量的捕获时会发生什么,例如(上帝)|(亚当)&(前夕)?

我想用'',“”或者没有任何东西捕获一个值,这就是我所拥有的:

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

1 个答案:

答案 0 :(得分:2)

反向引用计算括号的数量,无论它们中有多少匹配。

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

  

\ 1 - "上帝"或空的   \ 2 - " adam"或空的   \ 3 - " eve"或空

见这里:http://jsfiddle.net/MnASH/