matching operator, substitution et regexp... [Perl] - Programmation
Marsh Posté le 19-03-2002 à 11:35:42
Pourquoi veux-tu extraire "toto", si tu sais qu'il est présent, tu fais: $toto = "toto" et c'est bon, et dans ce cas, tu peux faire: 
 
if($n=$string=~m/toto/) { 
   $toto = "toto"; 
} 
 
  
 
Marsh Posté le 19-03-2002 à 12:06:03
euh, je n'ai peu etre pas tout compris, mais pourquoi n'utilises tu pas un tableau ? 
 
genre: 
 
@string = qw(toto titi tutu) 
$a = $string[0] #la tu rechopes toto 
$b = $string[1] #la tu rechopes titi 
$b = $string[2] #enfin, la tu rechopes tutu 
 
enfin aprés tu joues avec les variables et tableaux 
 
mais je ne suis pas sur que cela réponds à ta question, car je ne l'ai pas bien comprise  
 
 
Bon courage 
 
++ 
Marsh Posté le 19-03-2002 à 12:34:09
je me suis peut etre mal expliqué... 
 
Deep > je ne SAIS PAS si toto est present : dans ma chaine je peux avoir jusqu'a 3 champs differents mais je n'ai pas forcement toto par exemple... 
 
Angel > non c'est pas ça que je veux faire...  
 
 
un exemple plus parlant : 
 
# contenu de $string -> 'Description="ma desc" Start="mon start" End="ma end"' 
 
is se peut que $string ne contienne que le start par exemple ou alors seulement la description... 
et je veux recuperer qqe chose dans des scalaires : 
 
# contenu des mes scalaires apres traitement 
# $desc = "ma desc" 
# $start = "mon start" 
# $end = "ma end" 
 
en fait je veux faire une fonction qui parse ma chaine pour retirer certaines infos et les stocker dans des scalaires. 
 
... en fait j'ai trouvé comment faire entre temps... 
 
if ($string =~ /Description=/) 
    { 
      $desc = $string; 
      $desc =~ s/Description=//; 
    } 
if ($string =~ /Start=/)  
    { 
      ... 
 
En fait c'etait pas si dur que ça... 
 
merci qd meme. 
 
hihi  
 
 
EDIT : en fait cette solution ne marchait pas... il faut que je fasse un split de ma chaine avt !   
 
[jfdsdjhfuetppo]--Message édité par impulse--[/jfdsdjhfuetppo]
Marsh Posté le 19-03-2002 à 10:02:55
hi. c'est encore moi (et c'est encore du Perl ).
 ). 
 
 
 
 
je voudrais "travailler" une string un peu comme ça :
my $string = "premier=toto deuxieme=titi troisieme=tutu";
...
# $toto = "toto"
# $titi = "titi"
# $tutu = "tutu"
le pb c'est que ma string peut contenir toto, titi ou tutu ou juste titi ou tutu ou alors juste toto etc... Je voudrais ensuite recup la chaine "toto" dans $toto en virant la chaine "premier=" etc...
Si qqun a une piste pour faire ça proprement... je vais travailler dessus bien sur mais si vous avez un petite idée faut pas se gener
hihi