[eside-ghost] regex y sustitucion
STenyaK (Bruno Gonzalez)
stenyak en gmail.com
Mie Abr 23 21:33:55 CEST 2008
On 4/23/08, Javier Ortega Conde (Malkavian) <malkavian666 en gmail.com> wrote:
> > Esto:
> > <img src=/images/imagen.gif width=19 heigth=19 border=0 title=""
> > alt="">
> >
> > Por esto:
> > <img src=/images/imagen.gif width=19 heigth=19 border=0 title=""
> > alt="texto">
Asi sin probar, y con la sintaxis que puede variar segun qué uses (tal
vez tengas q escapar o no escapar cosas), podrias hacer:
s/\(<img[^>]*\ title="\)/\1"texto/g
que a cachos significaría:
busca dentro de un tag q empiece por "<img" y acabe en ">", que tenga
el texto ' title="', y añadele texto tras esa doble comilla.
Lo que esta entre \( y \) se almacena en la variable \1.
[^>]* significa cualquier caracter que no sea el de fin de tag (para q
no cambies el title a otro tag sin querer).
Y weno, la g para sustituir incluso si hay varias instancias en la misma linea.
El problema es que, según la sintaxis html/xhtml, los atributos del
tag pueden caer en diferentes líneas. Y yo de saltos de línea no
controlo mucho, asi que suelo usar un warrohack que es sustituir los
\n por un carácter de pitido antes del regexp, y después devuelvo los
pitidos a su estado original de salto de línea. Caracter de pitido o
cualquier otro caracter q sepas seguro q no vaya a haber en el html.
Para ello, puedes pipear el html a un temporal con el comando tr.
Weno, a ver si ayuda y no me he equivocado mucho :-)
--
Saludos,
Bruno González
_______________________________________________
Msn/Jabber: stenyak AT gmail.com
ICQ: 153709484
http://www.stenyak.com
Más información sobre la lista de distribución eside-ghost