regex, buscar cadenas con comillas

Antonio Beamud Montero antonio.beamud en linkend.net
Vie Dic 7 13:41:43 CET 2007


El vie, 07-12-2007 a las 13:30 +0100, Oswaldo Hernández escribió:
> Hola a todos,
> 
> Estoy intentando localizar en una string cadenas que van entre comillas.
> 
>  >>> c = "cadena de ejemplo con 'texto entre comillas'. Fin"
>  >>> m = re.split("('.*')|(\".*\")", c)
>  >>> m
> ['cadena de ejemplo con ', "'texto entre comillas'", None, '. Fin']

> Hasta aqui bien (excepto que no entiendo el None).
> El problema se me presenta cuando hay mas de un texto entrecomillado:
> 
>  >>> c = "cadena de ejemplo con 'texto entre comillas' y 'otro texto mas'. Fin"
>  >>> m = re.split("('.*')|(\".*\")*", c)
>  >>> m
> ['cadena de ejemplo con ', "'texto entre comillas' y 'otro texto mas'", None, '. Fin']
> 
> En este caso me toma desde la comilla inicial del primer texto hasta el cierre del ultimo como una 
> sola cadena.


A bote pronto, con que cambies el .* por .*? para hacerlo non-greedy, te
debe funcionar sin problemas. 

Puedes hacer un re.finditer(..) para que te vaya devolviendo los
resultados en un iterador... pero vamos, como quieras...

> No doy la la expresion correcta. ¿Alguna ayudita?
> 
> Gracias.
> 

------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


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