separation numero et signe avec une regexp
bonjour a tous,
voila j'ai une variables qui contient des valeurs du type :
12.5G
45B
75.02MB
8T
pour faire ma conversion en giga j'utilise en regexpr pour faire ma separation avant le calcul mais des fois j'ai des trucs zarbi alors j'ai fait un test dont le resultat est le suivant :
Citation:
bash-3.00# /usr/local/bin/perl -e 'my $value="12MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
0
bash-3.00# /usr/local/bin/perl -e 'my $value="1MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
0
bash-3.00# /usr/local/bin/perl -e 'my $value="122MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
122
bash-3.00# /usr/local/bin/perl -e 'my $value="22MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
0
bash-3.00# /usr/local/bin/perl -e 'my $value="22.MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
0
bash-3.00# /usr/local/bin/perl -e 'my $value="22.5MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
22.5
bash-3.00# /usr/local/bin/perl -e 'my $value="22MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
0
bash-3.00# /usr/local/bin/perl -e 'my $value="22M"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
0
bash-3.00# /usr/local/bin/perl -e 'my $value="22MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
0
bash-3.00# /usr/local/bin/perl -e 'my $value="22MB"; if($value=~/([0-9]+.+[0-9]+)(.*)/){print $1."\n"; }else{ print "0\n";}'
normalement a chaque fois je dois avoir le numero au lieu de zero mais ce n'est pas le cas tout le temps !!!!!
merci de votre aide