[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Expresiones regulares en perl



Javier wrote:

Hola,

haciendo más pruebas he descubierto que el problema debe de estar en
la evaluación de la expresión regular esa en concreto o del tamaño de
la misma.
Si con los mismos valores de entrada (ficheros de más de 30 Kb's)
escribo una expresión en perl que borre, por ejemplo, <temas>,
devuelve un valor correcto al sistema. Si luego hago un print, se ve
que funciona perfectamente. Sin embargo con la expresión que está
ahora "if ($ref =~ /<temas>((.|\n)*?)<\/temas>/){}" siempre falla si
el tamaño de la variable es muy grande.

¿Alguna idea de por qué puede pasar eso tras la actualización a lenny?


Hola,

Corrígeme si me equivoco. Pero la expresión regular no debería ser

/<temas>((.|\n)*)</temas>/


El / separador no debería estar escapado \/ Quizás en cambio si deberías escapar los paréntesis angulares
y dejar la expresión así:

/\<temas\>((.|\n)*)\</temas\>/


Además! El ? Creo que es redundante y se podría eliminar. Pruebala de esta forma a ver si funciona y hace lo mismo que la otra.

Saludos,



Reply to: