如何检查命名的捕获组是否存在?

在我的正则表达式中,模式是这样的:

@"Something\(\d+, ""(.+)""(, .{1,5}, \d+, (?\d+)?\)," 

所以我想知道存在。 如果它是一个普通的捕获组,我可以检查捕获组是否大于没有那个/那些捕获组的组数,但是我没有这里的选项。

有人能帮我找到解决方法吗? 我不需要它有效率,它只是用于排序的一次性程序,所以我不介意它是否需要运行一点。 它不适用于公共代码。

根据文件 :

如果groupname不是集合中捕获组的名称,或者groupname是输入字符串中未匹配的捕获组的名称,则该方法返回Group对象,其Group.Success属性为false且其Group .Value属性是String.Empty。

 var regex = new Regex(@"Something\(\d+, ""(.+)""(, .{1,5}, \d+, (?\d+)?\),"); var match = regex.Match(input); var group = match.Groups["somename"]; bool exists = group.Success;