[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Ayuda Expresiones regulares



On Fri, Jan 26, 2007 at 03:05:51PM -0600, Mario Tello wrote:
> Necesito ayuda para leer un .csv separado por comas, estoy utilizando 
> php, si lo leo y lo sera todo muy bien, pero existen casos, en que viene 
> algo asi
> 
> dato1,dato2,file,"4,5,9",otracosa

Mejor busca una biblioteca de csv ya hecha. Ese formato no está muy
bien definido y hay un montón de casos frontera que, si lo haces a
mano, tarde o temprano te van a pegar. Por poner un ejemplo, el caso
que mencionas sí se podría resolver con una expresión regular

(en sintáxis medio inventada):
 s/"([^,"]+),([^"]+"/"\1 \2"/
Repita en un bucle hasta que no haya 'match'.

¿Pero que pasa si hay comas que sí quieres preservar?:
 dato1,"Gallardo Cruz, Luis Rodrigo", dato3

¿Qué pasa si el dato tiene comillas, por ejemplo escapadas como \"?
 dato1,"Francisco Martinez, alias \"el paco\"",dato3

Y un largo etcétera.

Y decir 'Los datos que estoy importando no tienen esos casos' no
sirve, por que tarde o temprano a tí o a alguien más se le va a
ocurrir alimentar tú programa con datos generados por alguna otra
versión de algún otro programa, o va a tomar un pedacito de tu
aplicación y usarla en otro proyecto, o algo.

-- 
Rodrigo Gallardo
GPG-Fingerprint: 7C81 E60C 442E 8FBC D975  2F49 0199 8318 ADC9 BC28
Zenophobia: the irrational fear of convergent sequences.

Attachment: signature.asc
Description: Digital signature


Reply to: