[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux_var] Regexp troppo vorace
Un po' di regexpr....
Ho un file in questo formato:
<nome file>_AAAAMMGGHHMMSSmmm.csv
cioè,
anno in 4 cifre (2011), mese, giorno, ora, minuti, secondi
rispettivamente con 2 cifre e millesimi di secondo in 3 cifre.
vorrei suddividere il file in
<nome file>
anno, giorno, ora....
i millesimi non mi importano.
Con una bella regexp e Perl (Ma anche con altri linguaggi) si fa facilmente.
Vorrei ricavare in un'unica passata (cioé chiamare solo una volta split)
ottenere l'anno in AAAA e suddiviso secoli e anni
cioè:
2012
20
12
Io ho usato
((\d{2}){2})
ma il risultato
è
2012
12
Un po' troppo greedy...affamato.
Come posso fare per renderlo meno famelico....
input: pippo_20111028130931000.csv
my @array = split(/(((\d{2}){2})(\d{2})(\d{2})((\d{2}){3})(\d{3})\.csv)$/,
$ARGV[0]);
print Dumper @array;
$VAR1 = 'pippo_';
$VAR2 = '20111028130931000.csv';
$VAR3 = '2011';
$VAR4 = '11';
$VAR5 = '10';
$VAR6 = '28';
$VAR7 = '130931';
$VAR8 = '31';
$VAR9 = '000';
_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking