Ich analysiere einen Text mit C # regex. Ich möchte nur eine bestimmte Gruppe für jedes Spiel ersetzen. Hier, wie ich es mache:
%Vor% Sie können MatchEvaluator
verwenden:
Versuche dies.
Ich habe einen Beitrag im Stackoverflow gefunden: Dies
Regex.Replace
ersetzt immer alles, was die bereitgestellte Regex gefunden hat .
Sie haben zwei Möglichkeiten:
Entsprechen Sie nur dem, was Sie ersetzen möchten
oder
Fügen Sie die Teile der ursprünglichen Zeichenfolge, die gefunden wurde, aber beibehalten werden soll, in die Ersetzungszeichenfolge ein, indem Sie Erfassungsgruppen verwenden.
Sie haben nicht genügend Informationen zur Verfügung gestellt, um Ihre Frage spezifischer beantworten zu können. Z.B. Brauchst du wirklich ein MatchEvaluator
? Dies ist nur erforderlich, wenn Sie für jede Übereinstimmung eine individuelle Ersetzungszeichenfolge bereitstellen möchten.
Der folgende Code nimmt eine Übereinstimmung und erstellt eine Ersatzzeichenfolge basierend auf der groupValues-Auflistung. Diese Auflistung gibt einen Gruppenindex und den zu ersetzenden Text an.
Im Gegensatz zu anderen Lösungen muss die gesamte Übereinstimmung nicht in Gruppen enthalten sein, sondern nur die Teile der Übereinstimmung, die Sie in Gruppen haben möchten.
%Vor%