Regex Match.Value gibt den gesamten Wert zurück, nicht die übereinstimmenden Gruppen

Ich versuche derzeit, die relativ einfache Aufgabe zu lösen, Werte aus einer Zeichenfolge zu erfassen, die zwischen geschweiften Klammern mit einem regulären Ausdruck vorhanden ist. Der Ausdruck, den ich geschrieben habe, funktioniert gut mit einer Reihe von Online-Tools, mit denen ich ihn getestet habe. Dies ist jedoch in .NET nicht der Fall.

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

MatchCollection matches = regex.Matches(str);

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

Ich würde erwarten, 3 Übereinstimmungen mit "Wert1", "Wert2", "Wert3" zu erhalten. .NET gibt jedoch auch die Klammern zurück, d. H. "{Wert1}", "{Wert2}", "{Wert3}".

Jede Hilfe, wie dies erreicht werden kann, wäre großartig.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage