tratamiento de cadenas

David Sotelo impar en gmx.net
Mie Abr 7 02:30:17 CEST 2004


On Wed, 07/Apr/2004 00:53 (+0200), David Sanchez Perez wrote:

> Hola listeros...
> Hace no mucho que he empezado a leerme manuales de python y a trabajar con el.
> Mi pregunta es la siguiente: dado por ejemplo esta cadena:
> 
>  ('OK', ['(\\HasNoChildren) "." "INBOX.Trash"', '(\\HasNoChildren) "."
>  "INBOX.Sent"', '(\\HasNoChildren) "." "INBOX.prueba_dvd.anidada2"',
>  '(\\HasChildren) "." "INBOX.prueba_dvd"', '(\\Unmarked \\HasChildren) "."
>  "INBOX"'])
> 
> me gustaria obtener todas las cadenas que empiezan por INBOX.xxx, es decir lo
> que yo quiero es obtener las cadenas que se encuentran entre comillas dobles
> (excepto "."). He hecho pruebas con 'cut', y me estoy mirando comandos como
> 'sed' o 'awk', pero no estoy completamente seguro de que no exita ningun
> metodo en python que me permita hacer esto....

Si he entendido bien la pregunta una posible manera de hacerlo, suponiendo que
tengas la cadena completa en una variable llamada 'cad', sería la siguiente:

>>> [s for s in cad.split('"') if s.startswith('INBOX.')]
['INBOX.Trash', 'INBOX.Sent', 'INBOX.prueba_dvd.anidada2', 'INBOX.prueba_dvd']

Saludos.




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