Página 1 de 1

Eliminar subcadena en python

Publicado: Lun, 13 Dic 2010, 13:46
por Metal
Tengo q eliminar una subcadena de una cadena y la solución q se me ocurrió fue:

Código: Seleccionar todo

texto = "Foro de Soporte Técnico en Tecnologías Libres"
texto_eliminar = "Soporte"
nuevo_texto = texto.replace(texto_eliminar, "")
Me gustaría saber q creen de esta solución y si tienen alguna mejor por favor compartirla.

Re: Eliminar subcadena en python

Publicado: Mar, 14 Dic 2010, 05:00
por hugo
Tu solución me parece suficientemente "pitónica". Otra variante podría ser utilizando las expresiones regulares:

Código: Seleccionar todo

import re
texto = "Foro de Soporte Técnico en Tecnologías Libres"
texto = re.sub("de Soporte ", "", texto)
La ventaja de esta variante es que las expresiones regulares permiten una mayor flexibilidad.

Re: Eliminar subcadena en python

Publicado: Mar, 05 Abr 2011, 14:48
por Hyuuga_Neji
Bueno no es ke me kiera meter pero al importar re lo que hicimos fue reemplazar el texto por un espacio pero la cadena final nos keda con un doble espaciado y me imagino que ase no es el resultado que queremos o si?

Re: Eliminar subcadena en python

Publicado: Mar, 05 Abr 2011, 15:17
por hugo
Negativo, en este ejemplo se remplaza la expresión "de Soporte " (incluyendo el espacio al final) por una cadena vacía, por lo que no debería haber duplicidad de espacios, el texto resultante debería quedar: "Foro Técnico en Tecnologías Libres".

Re: Eliminar subcadena en python

Publicado: Mar, 05 Abr 2011, 15:29
por Metal
Queda un espacio si hubiera hecho esto (con espacio):

Código: Seleccionar todo

texto = re.sub("de Soporte ", " ", texto)
pero no, lo q hizo fue esto (sin espacio):

Código: Seleccionar todo

texto = re.sub("de Soporte ", "", texto)

Re: Eliminar subcadena en python

Publicado: Mié, 06 Abr 2011, 14:02
por Hyuuga_Neji
cierto no me fije que esbamos poniendo la inlusion del espacio que viene detras de la palabra texto pero se me ocurre una idea para generalizar...... o sea sin llegar a definir una nueva funcion guardar la cadena a reemplazar en una nueva variable y nos kedaria asi:

Código: Seleccionar todo

>>> cadena_original = "Esto No lo voy a borrar" 
>>> cad_eliminar = "No "
>>> import re 
>>> cadena_final = re.sub(cad_eliminar,"",cadena_original)
>>> print cadena_final
Esto lo voy a borrar

Es es mismo ejemplo solo gastando mas memoria pero mas menos serviria para definir una funcion mas adelante no creen

Re: Eliminar subcadena en python

Publicado: Mié, 06 Abr 2011, 14:12
por hugo
Claro, nada obliga a especificar el texto a eliminar en la propia llamada o a devolverlo en la misma cadena, yo solo lo puse así para abreviar. ;)