Wie zu ersetzen, die dem letzten Punkt in einem string mit einem regulären Ausdruck?
Ich versuche, ersetzen Sie den letzten Punkt in einem String mit einem regulären Ausdruck.
Sagen wir, ich habe folgenden String:
String string = "hello.world.how.are.you!";
Möchte ich ersetzen Sie den letzten Punkt mit einem Ausrufezeichen, so dass das Ergebnis ist:
"hello.world.how.are!you!"
Habe ich versucht verschiedene Ausdrücke mit der Methode String.replaceAll(String, String)
ohne Glück.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Möglichkeit wäre:
Alternativ können Sie die Verwendung von negativen lookahead als:
Regex in Aktion
^(.*)\\.(.*?)$
?Obwohl Sie können einen regex verwenden, ist es manchmal am besten, einen Schritt zurück und tun Sie es einfach auf die altmodische Art und Weise. Ich war schon immer der überzeugung, dass, wenn Sie nicht denken, ein regex zu tun, es in etwa zwei Minuten, ist es wahrscheinlich nicht geeignet, um eine regex-Lösung.
Zweifellos einige wunderbare regex Antworten hier. Einige von Ihnen können sogar gelesen werden 🙂
Können Sie
lastIndexOf
, um die letzten vorkommen undsubstring
zu bauen, eine neue Zeichenfolge: Das komplette Programm zeigt wie:Ausgabe:
Regex, die Sie brauchen, ist
\\.(?=[^.]*$)
. die?=
ist eine lookahead-assertionVersuchen Sie dies: