Comment vérifier si un groupe de capture nommé existe?

Dans ma regex, le motif ressemble à ceci:

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

Je voudrais donc savoir si existe. S’il s’agissait d’un groupe de capture normal, je pourrais simplement vérifier si le nombre de groupes de capture est supérieur au nombre de groupes sans ce / ces groupe (s) de capture, mais je n’ai pas l’option ici.

Quelqu’un pourrait-il m’aider à trouver un moyen de contourner cela? Je n’ai pas besoin de ça pour être efficace, c’est juste pour un programme à usage unique utilisé pour le sorting, donc ça ne me dérange pas si ça prend un peu à courir. Ce ne sera pas pour le code public.

Selon la documentation :

Si nom groupe n’est pas le nom d’un groupe de capture de la collection, ou si nom groupe est le nom d’un groupe de capture qui n’a pas été mis en correspondance dans la chaîne d’entrée, la méthode retourne un object Group dont la propriété Group.Success est définie sur false et dont Group La propriété .Value est Ssortingng.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;