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