Bonjour,
Etant donné une chaine de type :" -BEGIN MARQUEUR1 -BEGIN MARQUEUR2 val11 val12 val13 -END MARQUEUR2 -BEGIN MARQUEUR2 val21 val22 val23 -END MARQUEUR2 -END MARQUEUR1 "
Le marqueur 1 délimite un type d'objet qui contient une liste d'objet de type marqueur 2 (oui je sais ce type de string pour envoyer/recevoir des objets c'est pas top ... patatécépamafotetcécomsa)
J'ai essayé un truc du genre (désolé la machine où je code n'est pas la même où j'écris ce post, donc il peut y avoir des erreur de syntaxe):
Je m'attendais à e que ça m'affiche ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 [...] print "----- new objet 1 -----\n"; $ligne=chaine de l'exemple. my ($type1) = $ligne =~/-BEGIN MARQUEUR1 (.*) -END MARQUEUR1/; while($type1 =~ m/-BEGIN MARQUEUR2 (.*) -END MARQUEUR2/g) { print "obj2 : [$1]\n"; } [...]
Mais ça m'affiche----- new objet 1 -----
obj2 : var11 var12 var13
obj2 : var21 var22 var23
Alors, je crois comprendre mon erreur (mon expression régulière var chercher la fin de marqueur 2 "au plus loin" et pourquoi ça m'affiche ça. Mais en revanche, je ne vois pas du tout quoi faire, en m'aidant des regex, pour avoir le résultat voulu.----- new objet 1 -----
obj2 : var11 var12 var13 var21 var22 var23
J'ai l'impression d'être bloqué par un grain de sable et j'avoue ne pas aimer ça )
Si il y avait une bonne âme pour m'aider ça serait top !
Cordialement,
Partager