Regex Match.Value, возвращающая все значение, а не совпадающие группы

В настоящее время я пытаюсь выполнить относительно простую задачу захвата значений из строки, которая существует между наборами фигурных скобок с использованием регулярного выражения. Выражение, которое я написал, прекрасно работает на ряде онлайн-инструментов, на которых я его протестировал, однако в .NET это не так.

String str= "{Value1}-{Value2}.{Value3}";
Regex regex = new Regex( @"\{(\w+)\}");

MatchCollection matches = regex.Matches(str);

foreach(Match match in matches)
{
    Console.WriteLine(match.Value);
}

Я ожидаю получить 3 совпадения «Value1», «Value2», «Value3». Однако .NET также возвращает скобки, то есть "{Value1}", "{Value2}", "{Value3}".

Любая помощь в том, как это может быть достигнуто, будет великолепной.

Ответы на вопрос(3)

Ваш ответ на вопрос