Mögliches Duplikat:
Java Regex Ersetzen mit Erfassungsgruppe
Gibt es eine Möglichkeit, eine Regexp durch den geänderten Inhalt einer Erfassungsgruppe zu ersetzen?
Exemple :
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher(text);
resultString = regexMatcher.replaceAll("$1"); // *3 ??
Und ich möchte alle Vorkommnisse durch $1 multipliziert mit 3 ersetzen.
bearbeiten:
Sieht so aus, als wäre etwas nicht in Ordnung :(
Wenn ich die
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 :(
edit2:
Jetzt klappt es :)