Je commencerais avec un regex pour séparer les groupes:
Regex rx = new Regex(@"(?<!\\),");
String test = "OU=James\\, Brown,OU=Test,DC=Internal,DC=Net";
String[] segments = rx.Split(test);
Mais à partir de là, je diviserait les paramètres dans le tableau en les décomposant manuellement, de sorte que vous n'ayez pas besoin d'utiliser une expression rationnelle qui dépend de plus que le caractère séparateur utilisé. Comme cela ressemble à une requête LDAP, cela n'a pas d'importance si vous regardez toujours params [0], mais il y a une chance que le nom soit défini comme "CN =". Vous pouvez couvrir les deux cas, en lisant simplement la requête comme ceci:
String name = segments[0].Split('=', 2)[1];
Dommage que vous ne puissiez pas obtenir l'API que vous utilisez pour vous donner la sortie dans un format structuré. L'analyse est fastidieuse. –