2

我知道捕获带括号的子表达式即使在不匹配的可选部分中也会被计入反向引用编号,但是当它们在交替的分支中时呢?(adam)|(eve) 会在 \1 中给出 adam 还是在 \2 中给出 eve,或者在 \1 中给出 adam 或 eve?

是否所有捕获括号仍然从左到右计数,或者这两个在编号中算作一个?如果是这样,当您在选择中有不同数量的捕获时会发生什么,例如 (god)|(adam)&(eve)?

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

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

1 回答 1

3

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

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

\1 - “上帝”或空
\2 - “亚当”或空
\3 - “夏娃”或空

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

于 2012-06-08T04:01:01.017 回答