¿Hay alguna forma de reemplazar una expresión regular con contenido modificado del grupo de captura?Reemplazo de Java Regex con el grupo de captura
Ejemplo:
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher(text);
resultString = regexMatcher.replaceAll("$1"); // *3 ??
Y me gustaría para reemplazar todos los sucesos con $ 1 multiplicada por 3.
edición:
parece, algo anda mal :(
Si uso
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();
}
lanza una IllegalStateException: No se encontró coincidencia
Pero
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();
}
funciona bien, pero no puedo cambiar $ 1 :(
edición:
Ahora , está funcionando :)
trabajando directamente en una cadena, por fin tenemos [esto] (http: // stackoverflow .com/a/6057820/1422630) –