suppression fin chaîne de caractère [Perl] - Perl - Programmation
Marsh Posté le 14-04-2011 à 21:26:37
Bonjour, il y a tout un tas de manière de faire ça.
une qui me vient à l'esprit: s/_.*//
Code :
|
C:\Perl>perl test.pl |
A+,
Marsh Posté le 15-04-2011 à 13:20:31
Merci gilou, c'est nickel
Une autre question :
comment faire pour garder la deuxième partie d'une chaîne de caractère si je n'est pas le "_" mais un espace ?
C'est a dire comment faire si $var="aaaa bbbb" pour garder $var="bbbb" ?
Merci.
Marsh Posté le 15-04-2011 à 13:33:32
Il va te falloir apprendre les expressions régulières et leur utilisation dans perl, parce que 1) c'est le point fort de perl, et 2) la c'est une utilisation particulièrement simple des expressions régulières
Code :
|
C:\Perl>perl test.pl |
A+,
Marsh Posté le 15-04-2011 à 13:38:17
Merci Gilou, c'est ce que je suis en train de faire mais grand débutant inside
Marsh Posté le 15-04-2011 à 14:49:03
Je vais encore abuser mais faut que je comprenne !
si $var="aaa bbb ccc" et que je veux que $var="bbb" ?
Marsh Posté le 15-04-2011 à 16:29:28
il te faut juste comprendre comment fonctionne le "grouping" et ça tombe bien la doc est pas mal faite sur ce sujet :
http://perldoc.perl.org/perlretut. [...] ng-matches
Code :
|
Marsh Posté le 15-04-2011 à 16:34:04
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 :
|
C:\Perl>perl test.pl |
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 :
|
C:\Perl>perl test.pl |
C'est la dernière partie entre deux blancs:
avec my $var = "aaa bbb ccc ddd";
C:\Perl>perl test.pl |
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 :
|
C:\Perl>perl test.pl |
A+,
Marsh Posté le 14-04-2011 à 15:51:01
Bonjour,
Je suis en train de m'arracher les cheveux sur quelque chose que j'imagine simple, mais vu mon niveau en perl !!!!
Voila j'ai une variable que contient une chaîne de caractère du style $var = aaaaa_bbbbbb .
Je veux supprimer tout ce qui est à partir du _ , c'est à dire ne garder que aaaaa .
Je précise que le nombre de a et de b peut varier.
Merci pour votre aide !