I am currently trying to achieve the relatively simple task of capturing values from a string which exist between sets of curly braces using a regular expression. The expres
You used capturing groups (...), so what you want is in the Groups[1]:
Regex regex = new Regex(@"\{(\w+)\}");
MatchCollection matches = regex.Matches(str);
foreach (Match match in matches) {
Console.WriteLine(match.Groups[1].Value);
}
Another way is to use zero-width assertions:
Regex regex = new Regex(@"(?<=\{)(\w+)(?=\})");
MatchCollection matches = regex.Matches(str);
foreach (Match match in matches) {
Console.WriteLine(match.Value);
}
In this way the Regex will search for \w+ that is preceded and followed by the { and }, but these two characters won't be part of the match.