[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