T
theomega
Gast
Hallo Leute,
ich würde gerne folgendes machen:
in einem String sollen alle
[xquote]xxx[/xquote] durch etwas anders ersetzt werden. Dabei sollen auch verschachtelte quotes versetzt werden.
Beispiel:
aus
soll werden:
Klar, sowas macht man mit Regular-Expressions, also schnell eine konstruiert und auf einen Teststring angewendet:
Sollte eigentlich genau das was oben steht produzieren. Tut es aber nicht, es wird nur ein Zitat ersetzt, das zweite bleibt unverändert stehen.
Das ist nicht das was ich will, der soll doch bitte das ganze sooft anwenden bis es nichtmehr anders geht, so wie es zum Beispiel PHP auch tut. Wie bringe ich ihm das bei? Wenn ich den Matcher nochmal auf das Ergebniss vom ersten Durchlauf loslasse dann habe ich das richtige Ergebniss, nur ist das natürlich keine Lösung!
Wer hat mir einen Tipp?
Danke
TO
ich würde gerne folgendes machen:
in einem String sollen alle
[xquote]xxx[/xquote] durch etwas anders ersetzt werden. Dabei sollen auch verschachtelte quotes versetzt werden.
Beispiel:
aus
Code:
[xquote]test[xquote]nocheiner[/xquote][/xquote]
Code:
== ZITAT ANFANG==
test
== ZITAT ANFANG==
nocheiner
== ZITAT ENDE ==
== ZITAT ENDE ==
Klar, sowas macht man mit Regular-Expressions, also schnell eine konstruiert und auf einen Teststring angewendet:
Code:
String in = "[quote]test[quote]nocheiner[/quote][/quote]";
Pattern pat = Pattern.compile("\\[quote\\](.*)\\[\\/quote\\]",Pattern.DOTALL);
Matcher mat = pat.matcher(in);
String out = mat.replaceAll("\n===== ZITAT ANFANG ==== \n $1 \n ===== ZITAT ENDE ===== \n");
System.out.println(out);
Sollte eigentlich genau das was oben steht produzieren. Tut es aber nicht, es wird nur ein Zitat ersetzt, das zweite bleibt unverändert stehen.
Code:
===== ZITAT ANFANG ====
test[quote]nocheiner[/quote]
===== ZITAT ENDE =====
Das ist nicht das was ich will, der soll doch bitte das ganze sooft anwenden bis es nichtmehr anders geht, so wie es zum Beispiel PHP auch tut. Wie bringe ich ihm das bei? Wenn ich den Matcher nochmal auf das Ergebniss vom ersten Durchlauf loslasse dann habe ich das richtige Ergebniss, nur ist das natürlich keine Lösung!
Wer hat mir einen Tipp?
Danke
TO