Digamos que tengo la siguiente cadena:Java: reemplazar expresión regular con el partido procesado
String in = "A xx1 B xx2 C xx3 D";
Quiero el resultado:
String out = "A 1 B 4 C 9 D";
me gustaría hacerlo de una manera que se asemeja más:
String out = in.replaceAll(in, "xx\\d",
new StringProcessor(){
public String process(String match){
int num = Integer.parseInt(match.replaceAll("x",""));
return ""+(num*num);
}
}
);
Es decir, utilizando un procesador de cadena que modifica la subcadena coincidente antes de realizar la sustitución real.
¿Hay alguna biblioteca ya escrita para lograr esto?
Genial, realmente pasado por alto este método! Gracias una tonelada. – glmxndr
No sabía sobre 'appendReplacement' y' appendTail'. Muchas gracias. – NawaMan