Hola a todos.
Llevo casi dos días dándole vueltas a una expresión regular que me está volviendo loco, se supone que tengo que encontrar (eliminar) un texto que se encuentra entre 2 "etiquetas" pero me resulta imposible hacer que se me pare en la última, me selecciona todo el texto.
Por partes:
El texto a buscar es del siguiente estilo:
Código PHP:
codigo php que no quiero tocar
/*etiqueta*/
un chorrazo de código php
con saltos de linea, que
encima es código malicioso
que estoy intentando eliminar de
una web
/*/etiqueta*/
mas código php que no quiero tocar
El primer problema con el que me encuentro es que "etiqueta" no es un texto fijo, en unas páginas está con /*e2c384*/ y /*/e2c384*/, en otros con /*f4tertsa4*/ y /*/f4tertsa4*/ con lo cual es un poco caótico.
Lo que tengo hasta el momento es lo siguiente:
/*etiqueta*/ lo encuentro con: #[A-Za-z0-9-]*#
/*/etiqueta*/ lo encuentro con: #\/[A-Za-z0-9-]*#
y con #[A-Za-z0-9-]*#[\t\r\n\s](((.*)[\t\r\n\s]*)*) encuentro todo el texto desde /*etiqueta*/ (incluida)
Vamos, que tengo la parte fácil... la cuestión es que me quedo ahí, no soy capaz de hacer que se me pare en /*/etiqueta*/ y me elimina también "más código php que no quiero tocar"
Intento hacerlo de esta forma #[A-Za-z0-9-]*#[\t\r\n\s](((.*)[\t\r\n\s]*)*)#\7[A-Za-z0-9-]*# pero nada, he intentando darle una vuelta y usar assertions pero no controlo mucho de regex...
¿Existe alguna forma de hacerlo o es un imposible?
Un saludo (y feliz año, aunque llegue algo tarde XD)