Regular Expressions - Replace

Hallo!

Ich habe einen String gegeben indem eine oder mehrere Zahlen vorkommen können, aber nicht müssen. Ich möchte jetzt in diesem String zu allen diesen Zahlen den Wert 3 addieren und den daraus resultierenden String ausgeben.

Beispiel:

vorher: abc155def19
nachher: abc158def22

Ich weiß, dass es die Regex.Replace-Methode gibt, leider komme ich damit aber nicht klar, weil ich ja angeben muss, durch was der gefundene Wert ersetzt werden soll, da das bei mir aber keine fester gleichbleibender Text ist weiß ich jetzt momentan nicht weiter.

Wer kann helfen?
Danke dafür schon jetzt!

lg
Daniel

Hallo!

Es gibt Überladungen von RegEx.Replace(), in die Du einen MatchEvaluator reinsteckst. Das ist ein Delegate, der für jeden Treffer aufgerufen wird und den jeweiligen Treffer ( Match ) als Argument bekommt. Dort wandelst Du Dir den (string-)Wert des Matches z.B. mittels int.Parse() in eine Zahl um, addierst 3 drauf und gibst das Ergebnis wieder als String zurück - das war’s dann schon.

Nur noch eine Frage zum Schluss: Wofür braucht man sowas? Das hört sich schon sehr nach Hausaufgabe an…

Gruß,
Martin

Danke für die Hilfe!

Nur noch eine Frage zum Schluss: Wofür braucht man sowas? Das hört sich schon sehr nach Hausaufgabe an…

-)

Nein, ist keine Hausaufgabe. Ich habe Ordner mit vielen Fotos, die alle einen bestimmten Namen inklusive einer Zahl haben. Diese Nummern sind nicht zufällig, sondern haben eine bestimmte Bedeutung zum Wiederfinden der Fotos. Ich möchte jetzt alle diese Fotos umbenennen, und zwar so, dass sich jeweils nur die Zahl ändert. Deshalb möchte ich ein Programm schreiben, dem ich eine Zahl übergebe und dieses geht dann alle Verzeichnisse durch und benennte die Fotos entsprechend um. Klingt komisch, ist aber so :wink:

lg
Daniel