Ich bin auf der Suche nach einem sehr einfachen Weg, um das Äquivalent von etwas wie dem folgenden JavaScript-Code zu erhalten. Das heißt, ich möchte für jede Übereinstimmung eine bestimmte Transformationsfunktion aufrufen und das Ergebnis als Ersatzwert verwenden.Was entspricht Regex-Replace-with-Function-Evaluierung in Java 7?
var res = "Hello World!".replace(/\S+/, function (word) {
// Since this function represents a transformation,
// replacing literal strings (as with replaceAll) are not a viable solution.
return "" + word.length;
})
// res => "5 6"
Nur .. in Java. Und vorzugsweise als "single method" oder "template", die wiederverwendet werden können.
[Hier] (http://stackoverflow.com/a/1282099/20938) ist eine vollständigere Lösung. Es behandelt das Problem von Dollarzeichen und Backslashes, die von 'appendReplacement()' als speziell behandelt werden. –