Ich bin auf der Suche nach einer Möglichkeit, die Länge einer Vergleichsgruppe im ersetzenden Ausdruck mit der Funktion C# regex.replace zu verwenden.Wie kann ich einen berechneten Wert in einer RegEx-Ersetzungsoperation in C# verwenden?
Das ist, was kann ich ersetzen ??? mit dem folgenden Beispiel, um die unten gezeigte gewünschte Ausgabe zu erhalten?
Beispiel:
val = Regex.Replace("xxx", @"(?<exes>x{1,6})", "${exes} - ???");
gewünschter Ausgang
X - 3
Anmerkung: Dies ist ein äußerst contrived/vereinfachtes Beispiel der Frage zu demonstrieren. Ich erkenne für dieses Beispiel, dass ein regulärer Ausdruck nicht der ideale Weg ist, dies zu tun. Vertrauen Sie mir einfach, dass die reale Anwendung der Antwort Teil eines komplexeren Problems ist, das die Verwendung eines RegEx-Ersatzes erfordert.
Dank. Ich dachte, ich müsste das tun, aber bevor ich diesen Weg gegangen bin, wollte ich nur sehen, ob ein Schlüsselwort von replace erkannt wurde, um diese Operation einfacher zu machen. Trotzdem hast du meine Aufwertung und wenn niemand mit einer Kurzform antwortet, werde ich diese Antwort akzeptieren. – JohnFx