Perl: regexp escape \'
Ciao a tutti,
è ufficialmente indetto l'ennesimo concorso "Trova l'espressione
regolare più breve ed elegante e vinci... una birra quando passi
dalle mie parti!" :)
Vorrei trasformare una riga simile a questa:
INSERT INTO "tabella" VALUES (123,'L\'Aquila','ciao\','\\');
in:
INSERT INTO "tabella" VALUES (123,'L''Aquila','ciao\','\\');
Ovvero sostituire \' con '' solo quando questi caratteri sono
all'interno di una stringa (purtroppo delimitata da apici).
Ho provato con:
s/\\'/''/g;
ma purtroppo agisce anche su 'ciao\' trasformandolo in 'ciao'''.
A complicare la cosa ci sono stringhe relative a diverse tabelle
del database e quindi l'elenco di stringhe e numeri racchiuse
dalle parentesi tonde cambia...
Grazie e a presto,
Giuseppe
P.S.: Tutto questo fa parte di uno script per convertire il dump
di un database MySQL in modo da farlo digerire a sqlite3 quindi,
se qualcuno ha già qualche soluzione pronta, ben venga...
--
_ Giuseppe Bordoni .oOo. http://www.geppozone.com ( _)
(o)> ------------------------------------------------------- \\\'',)
//\ Al mondo esistono 10 tipi di persone: quelle che \/ \ ^
V_/_ conoscono la notazione binaria e quelle che la ignorano _\'_/_)
Reply to: