> kommt alles durcheinander und nichts stimmt mehr.
genauer gehts nicht?
wollt gerade schon ein Beispiel bauen, siehe unten, aber du hast ja nichtmal eine Schleife, da wird sowieso nur maximal einmal ersetzt, wie soll das funktionieren?
zwei Tipps zum weitermachen:
beim Pattern an [c]".*\\%[^%]+\\%.*"[/c] oder ähnlich denken, damit wirklich nur Text zwischen zwei %-Zeichen gefunden wird, nicht mehrere zusammen
und dann noch der Vorschlag, direkt nach einzelnen Pattern zu suchen, ganz ohne Matcher
[code=Java]
for (all keys) {
line = line.replace("%"+key+"%", zugehöriger value);
}
[/code]
bei vielen Keys und wirklich vielen Zeilen vielleicht zu aufwendig
----
hier ein brauchbareres Ausgangsprogramm für weitere Fragen
[code=Java]
public class Test {
private static final Pattern TOKEN_PATTERN = Pattern.compile(".*\\%(.+)\\%.*");
private static final String TOKEN_DELIMITER = "%";
public static void main(String[] args) throws Exception {
String line = "abc %ORT% def";
Matcher m = TOKEN_PATTERN.matcher(line);
if (m.matches()) {
String token = m.group(1);
String replacement = token.equals("ORT") ? "Hamburg" : "oben";
line = line.replace(TOKEN_DELIMITER + token + TOKEN_DELIMITER, replacement);
}
System.out.println(line);
}
}
[/code]