Nehmen wir an, ich habe den folgenden regulären Ausdruck:
-(\d+)-
und ich möchte mit C # die Gruppe 1 (\d+)durch ersetzen, um Folgendes AAzu erhalten:
-AA-
Jetzt ersetze ich es mit:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
Aber das gefällt mir nicht wirklich, denn wenn ich _(\d+)_stattdessen das Muster so ändere, dass es übereinstimmt , muss ich auch die Ersatzzeichenfolge um ändern _AA_, was gegen das DRY-Prinzip verstößt.
Ich suche so etwas wie:
Behalten Sie den übereinstimmenden Text genau bei, aber ändern Sie Gruppe 1 nach this textund Gruppe 2 nach another text...
Edit:
Das war nur ein Beispiel. Ich suche nur nach einer generischen Methode, um das zu tun, was ich oben gesagt habe.
Es sollte funktionieren für:
anything(\d+)more_text und jedes Muster, das Sie sich vorstellen können.
Ich möchte nur Gruppen ersetzen und den Rest des Spiels behalten.
:). Meiner Meinung nach ist diese Lösung viel besser und sauberer als die Verwendung von Lookahead und Lookbehinds.