我可以拥有这样的正则表达式,我在一个组中有一个组吗?如果是这样,在.NET中是第1组,哪个是第2组?
^(abc(def))$
答案 0 :(得分:2)
首先启动的组(从左到右读取)始终低于编号 1 。在这种情况下,“外部”组是#1,“内部”组是#2。
考虑使用Named Matched Subexpressions (aka named groups)来避免混淆 - 至少在更复杂的情况下:
^(?<outer>abc(?<inner>def))$
1 来自MSDN的措辞:
使用括号的捕获根据正则表达式中左括号的顺序从左到右自动编号,从1开始。