Puede usar Matcher.appendReplacement()
/appendTail()
para crear funciones de búsqueda y reemplazo muy flexibles.
El ejemplo de la JavaDoc se parece a esto:
Pattern p = Pattern.compile("cat");
Matcher m = p.matcher("one cat two cats in the yard");
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "dog");
}
m.appendTail(sb);
System.out.println(sb.toString());
Ahora, dentro de ese bucle while
usted puede decidir lo que es el texto de reemplazo y la base de que la información sobre el contenido real de ser emparejado.
Por ejemplo, usted podría utilizar el patrón (,|cat|football)
para que coincida con ,
, cat
ofootball
y decidir sobre la sustitución real basado en el partido real dentro del bucle.
Puede hacer construcciones aún más flexibles de esta manera, como reemplazar todos los números decimales por números hexadecimales u operaciones similares.
No es tan corta y sencilla por ejemplo el código, pero se puede construir métodos cortas y sencillas con él.
¿Tiene alguna pregunta sobre la eficacia del tiempo de ejecución? ¿Flexibilidad?Estilo de código? Por favor aclara – Mac
También puede ser una cuestión de corrección, ya que los reemplazos realizados durante N pases pueden no ser equivalentes a la realización de reemplazos de N pares durante una sola pasada. – Xion
Pregunta actualizada, pero buscando el código para ser mejor estilo y permitir la flexibilidad – Decrypter