Un peu trop complexe la, et ça marchera pas si on a encore des blancs. Vaut donc mieux sélectionner la dernière partie sans blancs précédée par un blanc:
Code :
#!/usr/bin/perl -w use strict; use warnings; my $var = "aaa bbb ccc"; $var =~ s/.*\ s([^\ s]* )/$ 1/o;
|
C:\Perl>perl test.pl
aaa bbb ccc
ccc |
Edit: ah j'avais mal lu, je pensais que web_olivier voulait la partie finale.
Si tu veux juste la dernière partie entre deux blancs:
Code :
#!/usr/bin/perl -w use strict; use warnings; my $var = "aaa bbb ccc"; $var =~ s/.*\ s([^\ s]+ )\ s.*/$ 1/o;
|
C:\Perl>perl test.pl
aaa bbb ccc
bbb |
C'est la dernière partie entre deux blancs:
avec my $var = "aaa bbb ccc ddd";
C:\Perl>perl test.pl
aaa bbb ccc ddd
ccc |
Pour le première partie entre deux blancs, c'est du même style, il suffit juste de dire au premier matching de ne pas être greedy (de ne pas tenter de matcher le maximum, mais juste de s’arrêter au premier match):
Code :
#!/usr/bin/perl -w use strict; use warnings; my $var = "aaa bbb ccc ddd"; $var =~ s/.*?\ s([^\ s]+ )\ s.*/$ 1/o;
|
C:\Perl>perl test.pl
aaa bbb ccc ddd
bbb |
A+,
Message édité par gilou le 15-04-2011 à 16:55:17
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --