Estoy tratando de hacer lo siguiente usando una expresión regular (java replaceAll):
**Input:** Test[Test1][Test2]Test3 **Output** TestTest3En resumen, necesito eliminar todo lo que está dentro de los corchetes, incluidos los corchetes.
Estoy intentando esto, pero no funciona:
\\[(.*?)\\]¿Serías capaz de ayudar?
Gracias,
Faja
Puedes probar esta expresión regular:
\[[^\[]*\]y reemplazar por vacío
Fuente Java de muestra:
final String regex = "\\[[^\\[]*\\]"; final String string = "Test[Test1][Test2]Test3\n"; final String subst = ""; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); final String result = matcher.replaceAll(subst); System.out.println(result);Tu patrón original me funciona:
String input = "Test[Test1][Test2]Test3"; input = input.replaceAll("\\[.*?\\]", ""); System.out.println(input);Producción:
TestTest3Tenga en cuenta que no necesita los paréntesis dentro de los corchetes. Lo usaría si planeara capturar el contenido entre cada par de corchetes, que en su caso no necesita. No está mal tenerlos allí, simplemente no es necesario.
demostración aquí:
\[\w+]Esto funciona para mí, esta expresión regular coincide con todas las palabras que están entre corchetes.