Mehrere CRLF entfernen

manni

Mitglied
Wie kann ich denn mit replaceAll folgende Sequenz },CRLFCRLF] im String entfernen?
CRLF steht dabei für einen Zeilenumbruch - der aber auch mehrfach dort auftreten kann

ich habs probiert mit

Java:
newtext=text.replace("\\}\\,(\\r\\n)*\\]",newpart);

klappt aber leider nicht...
 
Code:
replace
kann nicht mit RegEx arbeiten,
Code:
replaceAll
/
Code:
First
schon.
 
String#replace will nunmal keinen Regulären Ausdruck. Du willst lieber String#replaceAll verwenden.
Außerdem willst du ? statt * schreiben, da sonst auch },] entfernt wird, also ohne ein einziges CRLF dazwischen.
 
ich meinte eigentlich replaceAll ;-)


jetzt hab ichs so probiert, das klappt aber auch nicht:
Java:
newtext=text.replaceAll("\\}\\,(\\r\\n)+\\]",newpart);
 
Code:
groovy:000> s = "bla},\r\n\r\n\r\n]blubb"
===> bla},


]blubb
groovy:000> s.replaceAll("\\}\\,(\\r\\n)+\\]", " XXXX ")
===> bla XXXX blubb
groovy:000>
Jup, sollte gehn.
 
das ist ein teil des textfiles


"type": "bin"
}
]
},

]
},{"property": {

hier möchte ich diesen Teil:
},

]

an allen Stellen ersetzen durch:
}]

und der Code sieht so aus:
Java:
...
            String newtext = oldtext.replaceAll("\\}\\{\\{", ",");
            newtext = newtext.replaceAll("\\}\\}\\{", "\\}\\,\\{");   
            newtext = newtext.replaceAll("\\}\\,(\\r\\n)+\\]", "\\}\\]");  
            newtext = "["+newtext;
...
 
Und du bist dir sicher, dass der Zeilenumbruch wirklich
Code:
\r\n
ist? Vlt ist es ja nur
Code:
\n
, weil:
Java:
String oldtext = "\"type\": \"bin\"\r\n" +
	"}\r\n" +
	"]\r\n" +
	"},\r\n" +
	"\r\n" +
	"]\r\n" +
	"},{\"property\": {";
String newtext = oldtext.replaceAll("\\}\\{\\{", ",");
newtext = newtext.replaceAll("\\}\\}\\{", "\\}\\,\\{");   
newtext = newtext.replaceAll("\\}\\,(\\r\\n)+\\]", "\\}\\]"); 
System.out.println(newtext);
ergibt:
Code:
"type": "bin"
}
]
}]
},{"property": {
 
naja, ich lese vorher ein File ein und setzte immer am Zeilenende "\r\n" dazu ;-)

ausserdem sehe ich in notepad++ die CRLF dahinter...
 
danke für die Tipps jetzt habe ich den Fehler gefunden.
Da es ein File ist, dass ich hier einlese, liegts daran, dass es Leerzeilen gibt mit Leerzeichen und einem CRLF.

Daher komme ich jetzt mit folgendem Code zur richtigen Lösung:

Java:
newtext=text.replace("\\}\\,\\s+(\r\n)+\\]",newpart);
 

Neue Themen


Zurück
Oben