Ich suche nach einer Möglichkeit, die Länge einer Vergleichsgruppe im ersetzenden Ausdruck mit der Funktion c # regex.replace zu verwenden.
Das heißt, was kann ich ersetzen ??? mit dem folgenden Beispiel, um die unten gezeigte gewünschte Ausgabe zu erhalten?
Beispiel:
%Vor%Gewünschte Ausgabe
%Vor%Hinweis: Dies ist ein extrem konstruiertes / vereinfachtes Beispiel zur Veranschaulichung der Frage. 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 Anwendung der Antwort in der realen Welt Teil eines komplexeren Problems ist, das die Verwendung eines RegEx-Ersatzes erfordert.
Versuchen Sie, die Version von Regex.Replace
zu verwenden, die eine Funktion aufruft, um zu bestimmen, welcher Ersatztext sein sollte:
Die Funktion könnte dann den übereinstimmenden Text betrachten (das Objekt Match
wird als Argument für die Evaluatorfunktion bereitgestellt) und eine Zeichenfolge mit dem richtigen berechneten Wert zurückgeben.
Versuchen Sie
%Vor%mit dem unten stehenden MatchEvaluator-Beispiel
%Vor%(teilweise aus dem Regular Expressions Cookbook gestohlen - meine Bibel haha)