ich die nächste String in Java haben:Ersetzen Wert in einem regex
|ABC|50200|100|50200|200|PRUEBA|ABC|20150220184512|
Also muss ich den Wert nach |50200|
(zweite) mit anderen Wert ersetzen, um einige Entscheidungen, müssen aber nur die zweite ersetzen Eine, wie kann ich tun, da ersetzen oder ersetzenAlle in diesem Fall nicht funktionieren. Ich war mit einigen regex und appendReplacement versucht, aber es hat nicht funktioniert, auch muß ich es so schnell wie möglich sein, Code unter:
String event = "|ABC|50200|100|50200|200|PRUEBA|ABC|20150220184512|";
Pattern p = Pattern.compile("^\|(\w*)\|(\d+)\|(\d+(\.\d{1,})*)\|(\d+(\.\d{1,})*)\|(\d+(\.\d{1,})*)\|\w+\|\w+\|\d{14}\|$");
Matcher mat = p.matcher(event);
StringBuffer aux = new StringBuffer();
mat.appendReplacement(aux, mat.group(5));
String newString = aux.toString();
Aber der Wert des Neuerstring ist 50200
, so dass im Grunde möchte ich es ersetzen mit 12345
, so würde der String so aussieht |ABC|50200|100|12345|200|PRUEBA|ABC|20150220184512|
Vielen Dank im Voraus für Ihre Hilfe
die Sache ist, ich habe die Regex zu verwenden, um das Format der Zeichenfolge zu überprüfen, bevor die ersetzen tun, weil es sein könnte, andere String mit verschiedenen Formaten
1. Haben Sie einen regulären Ausdruck verwenden? 2. Ist es immer die zweite Gruppe? – KevinO
Warum ein Regex? Das Format ist einfach genug. Finde das 4. '|' und ersetze die nächsten 5 Zeichen. grundlegende String-Operationen, keine Notwendigkeit einer Regex-Engine. –