通常,如果你试图访问一个不存在的数组成员,你会得到一个"IndexOutOfRangeException"
然而,由于某种原因,我没有得到一个Regex GroupCollection。
例如:
var match = Regex.Match("", "a");
var test = match.Groups[6];
不抛出异常,尽管match
只有一个组。
为什么会发生这种情况?
这是故意的。
参见GroupCollection
文档:
如果
groupnum
不是集合成员的索引或者,如果groupnum
是输入字符串中未匹配的捕获组的索引,则该方法返回一个group对象,其group。Success属性为false
,其Group.Value
属性为String.Empty.
我保留了句子的开头,因为它描述了您当前的场景:a
regex模式在空字符串中找不到匹配,匹配为空,并且没有ID = 6的组。