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