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 AA
zu 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 text
und 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.