Kurze Antwort, noch nicht. Nicht bis Java 9. In Java 9 gibt es Matcher.appendReplacement(StringBuilder,String)
und Methoden hinzugefügt zu API.
Bis dahin, wenn Sie keine Gruppe Ersetzungen in Ersatzzeichenfolge müssen dann finde ich diese Lösung auch ‚einfach‘:
Matcher m = PATTERN.matcher(s);
StringBuilder sb = new StringBuilder();
int pos = 0;
while(m.find()) {
sb.append(s, pos, m.start());
pos = m.end();
sb.append("replacement")
}
sb.append(s, pos, s.length());
Und selbst wenn Sie Gruppe Substitutionen brauchen dann wird es nur ‚mäßig‘ schwierig:
Matcher m = PATTERN.matcher(s);
StringBuilder sb = new StringBuilder();
int pos = 0;
while(m.find()) {
sb.append(s, pos, m.start());
pos = m.end();
if (m.start(1) >= 0) { // check if group 1 matched
sb.append(s, m.start(1), m.end(1)); // replace with group 1
}
}
sb.append(s, pos, s.length());
Ausgezeichneter Punkt über 'IS-A'-Beziehung. – kevinarpe