regex, buscar cadenas con comillas
Oswaldo Hernández
listas en soft-com.es
Vie Dic 7 14:00:00 CET 2007
Antonio Beamud Montero escribió:
> 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.
>
>>> c = "ejemplo con 'entre comillas', y 'otro mas' y \"un tercero\" Fin"
>>> m = re.split("('.*?')|(\".*?\")", c)
>>> m
['ejemplo con ', "'entre comillas'", None, ', y ', "'otro mas'", None, ' y ', None, '"un tercero"',
' Fin']
Perfecto :)
Gracias.
--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
------------ 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