Gibt es eine Möglichkeit, einen regulären Ausdruck durch geänderten Inhalt der Erfassungsgruppe zu ersetzen?
Beispiel:
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher(text);
resultString = regexMatcher.replaceAll("$1"); // *3 ??
Und ich möchte alle Vorkommen durch 1 $ multipliziert mit 3 ersetzen.
bearbeiten:
Sieht so aus, als ob etwas nicht stimmt :(
Wenn ich benutze
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher("12 54 1 65");
try {
String resultString = regexMatcher.replaceAll(regexMatcher.group(1));
} catch (Exception e) {
e.printStackTrace();
}
Es wird eine IllegalStateException ausgelöst: Keine Übereinstimmung gefunden
Aber
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher("12 54 1 65");
try {
String resultString = regexMatcher.replaceAll("$1");
} catch (Exception e) {
e.printStackTrace();
}
funktioniert gut, aber ich kann die $ 1 :( nicht ändern
bearbeiten:
Jetzt geht es :)