Wie kann ich einen berechneten Wert in einer RegEx-Ersetzungsoperation in C # verwenden?

Ich suche nach einer Möglichkeit, die Länge einer Übereinstimmungsgruppe im Ersetzungsausdruck mit der Funktion c # regex.replace zu verwenden.

Das heißt, was kann ich ersetzen ??? mit im folgenden Beispiel, um die gewünschte Ausgabe zu erhalten, die unten gezeigt wird?

Beispiel:

val = Regex.Replace("xxx", @"(?<exes>x{1,6})", "${exes} - ???");

Gewünschte Ausgabe

X - 3

Hinweis: Dies ist ein extrem ausgeklügeltes / vereinfachtes Beispiel, um die Frage zu veranschaulichen. Mir ist klar, dass für dieses Beispiel ein regulärer Ausdruck nicht der ideale Weg ist, dies zu tun. Vertrauen Sie mir einfach, dass die Anwendung der Antwort in der realen Welt Teil eines komplexeren Problems ist, das die Verwendung eines RegEx-Ersatzes erfordert.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage