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

C# 如何检查命名的捕获组是否存在?,c#,regex,C#,Regex,在我的正则表达式中,模式如下: @"Something\(\d+, ""(.+)""(, .{1,5}, \d+, (?<somename>\d+)?\)," @“某物\(\d+,”(.+)(,.{1,5}、\d+,(?\d+),” 因此,我想知道是否存在。如果它是一个正常的捕获组,我可以检查捕获组是否大于没有该/那些捕获组的组数,但我在这里没有选项 有人能帮我找到一个解决方法吗?我不需要它来提高效率,它只是一个用于排序的一次性程序,所以我不介意它是否需要运行一点。它不会用于公共

在我的正则表达式中,模式如下:

@"Something\(\d+, ""(.+)""(, .{1,5}, \d+, (?<somename>\d+)?\),"
@“某物\(\d+,”(.+)(,.{1,5}、\d+,(?\d+),”
因此,我想知道是否存在
。如果它是一个正常的捕获组,我可以检查捕获组是否大于没有该/那些捕获组的组数,但我在这里没有选项

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

根据:

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

var regex=new regex(@“Something\(\d+,”(.+)”(,.{1,5}、\d+,(?\d+),”);
var match=regex.match(输入);
var group=match.Groups[“somename”];
bool exists=组。成功;

我期待一个IndexOutOfRangeException。应该试试。愚蠢。谢谢!+1。
var regex = new Regex(@"Something\(\d+, ""(.+)""(, .{1,5}, \d+, (?<somename>\d+)?\),");
var match = regex.Match(input);
var group = match.Groups["somename"];
bool exists = group.Success;