[PERL / Python] La plus petit occurence dans une expression régulière
Nous cherchons à isoler une partie de phrase sachant que le séparateur est l’espace et que nous souhaitons la plus petite chaîne avant le blanc.
PERL
Connecté au clavier, je tape donc fébrilement mon expression régulière tant de fois écrite :
#!/usr/bin/perl -w
my $fic="7,1M /home/eric/materiel/driver reseau/toto.fkv";
$fic=~ /^.*\s(.*)/;
print $1."\n";ce qui me donne
reseau/toto.fkvau lieu de
/home/eric/materiel/driver reseau/toto.fkvCe qui se résume en fait à rechercher non pas la plus longue occurence correspondant à notre expression régulière mais la plus petite ! Heureusement Perl is your friend et * ? permet d’avoir ce que l’on souhaite.
#!/usr/bin/perl -w
my $fic="7,1M /home/eric/materiel/driver reseau/toto.fkv";
$fic=~ /^.*?\s(.*)/;
print $1."\n";/home/eric/materiel/driver reseau/toto.fkvPython
#!/usr/bin/python3
import re
txt="7,1M /home/eric/materiel/driver reseau/toto.fkv"
x = re.search("^.*?\s(.*)$", txt)
print (x.group(1))Accueil > Notes Techniques > PERL > [PERL / Python] La plus petit occurence dans une expression régulière