Java - Necesito ayuda con regex

 
Vista:
Imágen de perfil de Pedro
Val: 305
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con regex

Publicado por Pedro (102 intervenciones) el 13/04/2020 11:35:53
Necesito crear un Regex para encontrar estos match:

% s //Lleva un espacio vacío entre el tanto por ciento y la s
% d //Lleva un espacio vacío entre el tanto por ciento y la d
\ n //Lleva un espacio vacío entre la barra invertida \ y la n

Me explico en un String word = " Esto% s es un ejemplo de texto en% d donde quiero filtrar \ n";

Me gustaría que con un replace el resultado fuera el siguiente:

Lo que tengo------------------------> Esto% s es un ejemplo de texto en% d donde quiero filtrar \ n
Esto es lo que quiero conseguir Esto%s es un ejemplo de texto en %d donde quiero filtrar \n"


Es básicamente eliminar el espacio entre medio de los % y \n y añadir un espacio delante.

Espero haberme expresado con claridad.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con regex

Publicado por Rodrigo (623 intervenciones) el 13/04/2020 15:45:31
Tienes que usar replaceAll() sucesivamente, no creo que puedas hacerlo con solo 1 expresion regular.
Si s tiene el string original, el cambiado sera

1
s.replaceAll( ... ).replaceAll( ... ). replaceAll( .. )

cada replaceAlll tiene 1 expresion regular para cada cambio

1
2
3
s
.replaceAll("% d", "%d ")  // lo mismo con "% s"
.replaceAll("\\ n", "\\n ")

sunque en tu ejemplo no es evidente que pones un espacio despues de las expresion regular, si se quiere el espacio antes, seria:
1
2
3
s
.replaceAll("% d", " %d")  // lo mismo con "% s"
.replaceAll("\\ n", " \\n")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con regex

Publicado por Rodrigo (623 intervenciones) el 13/04/2020 16:25:03
parece que el \ requiere escaparse 2 veces en el caso de expresiones regulares, porque es un caracter especial tambien.

prueba

1
.replaceAll("\\\\ n", " \\\\n")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar