Saltar al contenido

Java regex para eliminar las etiquetas XML, pero no el contenido de las etiquetas

Esta es la solución más completa que te podemos dar, sin embargo estúdiala detenidamente y analiza si se adapta a tu proyecto.

Solución:

"How now brown cow.".replaceAll("<[^>]+>", "")

Ya casi estabas ahí 😉

Prueba esto:

str = str.replaceAll("<.*?>", "")

Si bien hay otras respuestas correctas, ninguna da ninguna explicación.

La razón por la que su expresión regular <.*?>.*?|<.*?/> no funciona porque seleccionará cualquier etiqueta así como todo lo que hay dentro de ellos. Puede verlo en acción en debuggex.

La razón por la que tu segundo intento <.*?>|<.*?/> no funciona porque seleccionará desde el principio de una etiqueta hasta la primera etiqueta de cierre que sigue a una etiqueta. Eso es un bocado, pero puedes entender mejor lo que está pasando en este ejemplo.

La expresión regular que necesita es mucho más simple: <.*?>. Simplemente selecciona cada etiqueta, ignorando si está abierta/cerrada. Visualización.

Recuerda que puedes comentar tu experiencia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *