Ich habe eine Zeichenfolge wie untenWie ersetzt man das Zeichen im zweiten Wort eines Strings?
String inp = "Monday 02nd January 2017";
Ich möchte von dem zweiten Wort letzten zwei Zeichen ersetzen. Meine Ausgabe sollte wie folgt aussehen.
Monday 02 January 2017
Ich habe einen regulären Ausdruck erstellt, die mir die letzten zwei Zeichen des zweiten Worts in einer Zeichenfolge gibt, aber ich bin nicht sicher, wie sie mit nichts zu ersetzen.
Hier meine regex ist und Ersetzen-Funktion
regex = "^(?:\\S+\\s){1}\\S+(\\w{2})\\b.*";
String op = inp.replaceAll(inp.replaceAll(regex, "$1"), "");
Denn wie es manchmal geschieht, meine Eingabezeichenfolge ist wie August 01st January 2017
und wenn ich „st“ ersetzen ersetzt alle „st“ in einer Zeichenkette. Ich möchte nicht so passieren. Es sollte genau die letzten zwei Zeichen vom zweiten Wort ersetzen.
Darf ich bitte wissen, wie kann ich dies in Java erreichen?
Was ist mit 'String op = inp.replaceAll (" (\\ d) (?: st | nd | rd | th) \\ b "," $ 1 ");'? –
@ WiktorStribiżew, Es funktioniert wie eine Magie ... !! Kannst du bitte deine Regex erklären? – linuxman
Unmöglich, das Ergebnis ist ['Montag, 02. Januar 2017'] (https://ideone.com/U0Kxe2) –