groovy replaceall

groovy: cómo reemplazar todo '')'' con ''''



replaceall (4)

Las otras respuestas son correctas para este ejemplo específico; sin embargo, en casos reales, por ejemplo, cuando se analiza un resultado usando JsonSlurper o XmlSlurper y luego se reemplaza un carácter en él, se produce la siguiente excepción:

groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.replaceAll() is applicable for argument types

Considera el siguiente ejemplo,

def result = new JsonSlurper().parseText(totalAddress.toURL().text)

Si uno quiere reemplazar un carácter como ''('' en el result con un '' '' por ejemplo, lo siguiente devuelve la Exception anterior:

def subResult = result.replaceAll(''//('','' '')

Esto se debe al hecho de que el método replaceAll de Java solo funciona para string tipos de string . Para que esto funcione, toString() debe agregar al resultado de una variable definida usando def :

def subResult = result.toString().replaceAll(''//['','' '')

Intenté esto:

def str1="good stuff 1)" def str2 = str1.replaceAll(''/)'','' '')

pero tengo el siguiente error:

Excepción org.codehaus.groovy.control.MultipleCompilationErrorsException: inicio fallido, Script11.groovy: 3: carácter inesperado: ''/' @ línea 3, columna 29. 1 error en org.codehaus.groovy.control.ErrorCollector (failIfErrors: 296)

entonces la pregunta es ¿cómo hago esto?

str1.replaceAll(''/)'','' '')


Lo mismo que en Java:

def str2 = str1.replaceAll(''//)'','' '')

Tienes que escapar de la barra invertida (con otra barra invertida).


Tienes que escapar del / dentro de replaceAll

def str2 = str1.replaceAll(''//)'','' '')


Una forma más Groovy: def str2 = str1.replaceAll(//)/,'' '')