Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/07/2015, 13:21
Avatar de Xerelo
Xerelo
 
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema con la eliminación de contenidos entre etiquetas

Yo una vez tuve el mismo problema, y llegué a la conclusión de que debido al funcionamiento de las regex (empiezan el análisis de derecha a izquierda), la pedazo de regex que tendría que hacer sería incomprensible en el improbable caso de que consiguiese hacerla.

Así que te propongo lo que hicimos nosotros, puede ser menos eficiente pero es más entendible y sencilla de debuggear. Hay que usar Matcher (group), recursividad y StringBuilder.

Con el matcher buscas la etiqueta que te interesa (inicio y fin), luego compruebas que dentro de ese trozo no está la etiqueta y puedes sustituir sin peligro. En el caso de que esté la etiqueta, tienes que diferenciar el caso de que estén anidadas o no, para escoger el trozo literal que vas a sustituir. El StringBuilder es para ir sacando una copia modificada del texto, porque buscar y modificar al mismo tiempo no es recomendable.

No quiero entrar más en detalle porque igual me lío o te lío a ti, pero buscaré el código por si acaso lo necesitas.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.