reemplazar datos de una cadena en orden inverso

Gabriel Genellina gagsl-py en yahoo.com.ar
Mar Feb 20 03:56:47 CET 2007


En Mon, 19 Feb 2007 23:34:13 -0300, Luis Rodrigo Gallardo Cruz  
<rodrigo en nul-unu.com> escribió:

>> <h2>subtitulo1<h2><p>parrafo</p><p>parrafo1</p><p>parrafo2</p><h2>subtitulo2<h2><p>parrafo3</p><h2>subtitulo3<h2>
>>
>> quiero reemplazar el ultimo tag <h2> por <em>
>>
>> alguién sabe como puedo hacer esto fácilmente, he pensado en:
>> 1. invertir la cadena
>> 2. string.replace('<h2>','<em>',1)
>> 3. string.replace('</h2>','</em>',1)
>> 4. invertir nuevamente
>
> Pues, si *siempre* es el último, debería servir. Excepto que, por
> supuesto, lo que necesitas reemplazar es '>2h<' por '>me<', e igual
> con los '</>'.

Otra forma sería buscar con rfind la posicion del ultimo <h2>, y hacer los  
reemplazos a partir de alli.

ulth2 = texto.rfind('<h2>')
if ulth2>=0:
   texto = texto[:ulth2]  
+ texto[ulth2:].replace('<h2>','<em>',1).replace('</h2>','</em>',1)

Igual hay que tener cuidado, puede fallar muy facilmente si aparece algo  
como <H2> o < h2 > o <h2 class="subtitulo">

-- 
Gabriel Genellina

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es