Ich möchte die folgende Zeile in C # ersetzen. Ersetzen Sie das erste Wort durch das letzte Wort. Ich muss '[' und ']' auch vom letzten Wort entfernen.
%Vor%Die Ausgabe sollte
sein %Vor%Danke
Nur zum Spaß habe ich einen kleinen Benchmark geschrieben, um all diese Antworten zu testen (einschließlich meiner anderen Antwort oben). Hier sind die Ergebnisse auf meiner Workstation (32-bit Core 2 Duo @ 2.66GHz) für 5M Wiederholungen mit einem Release Build:
Ergebnisse: wibecks Split-and-Join-Lösung gewinnt, aber die (OP-selektierte) Regex-Lösung war nur 15% langsamer, was mich überrascht hat. Ich habe 100% oder mehr schlechter erwartet. Ein großes Lob an die .NET Regex-Entwickler für Geschwindigkeit.
Meine eigene Lösung (mit Split und StringBuilder) war, dachte ich, für die Geschwindigkeit optimiert, erfordert aber viel mehr Code und macht es eigentlich nicht schnell. Doh!
Am überraschendsten war, dass ich eine kompilierte Regex-Lösung ausprobierte und sie war fast 3x langsamer als die unkompilierte Regex (und ich habe die Kompilierungszeit nicht in die Ergebnisse eingeschlossen - einschließlich der Kompilierung wäre es noch schlimmer). So viel zum kompilierten Regex Perf Vorteil.
LINQ war, wie ich erwartet hatte, sehr langsam - der Overhead all dieser zusätzlichen Objekte und Methodenaufrufe summiert sich wirklich.
Hier ist der Testcode:
%Vor%Hier ist ein Weg, es zu tun. Beachten Sie, dass ich davon ausgehe, dass die Zeichenfolge mindestens 1 Wort lang ist.
%Vor%OOPS, oben ein Tippfehler behoben. Bedient mich, Code zu schreiben, ohne zuerst zu kompilieren. : -)