Ich versuche, den letzten Punkt in einem String mit einem regulären Ausdruck zu ersetzen.
Sagen wir, ich habe den folgenden String:
%Vor%Ich möchte den letzten Punkt durch ein Ausrufezeichen ersetzen, so dass das Ergebnis lautet:
%Vor% Ich habe verschiedene Ausdrücke mit der Methode String.replaceAll(String, String)
ohne Glück ausprobiert.
Obwohl Sie einen Regex verwenden können, ist es manchmal am besten, einen Schritt zurückzutreten und es auf die altmodische Weise zu tun. Ich war immer der Überzeugung, dass es, wenn man in zwei Minuten nicht an eine Regex denken kann, es wahrscheinlich nicht für eine Regex-Lösung geeignet ist.
Zweifellos erhalten Sie hier einige wunderbare Regex-Antworten. Einige von ihnen sind vielleicht sogar lesbar: -)
Sie können % co_de verwenden % , um das letzte Vorkommen zu erhalten und lastIndexOf
um eine neue Zeichenkette zu erstellen: Dieses komplette Programm zeigt wie:
Die Ausgabe ist:
%Vor% Der Regex, den Sie brauchen, ist \.(?=[^.]*$)
. Das ?=
ist eine Lookahead-Assertion