Envoyé par
ruben
1 2 3 4 5 6
|
my @match=();
while ($fichier =~ /img/g) {
@match[$a]=$1;
$a++;
} |
Qu'es ce qui ne va pas ?
Plusieurs petits détails
$1 ne mémorise pas ton motif si tu ne le lui mets pas entre parenthèses dans l'expression rationnelle.
Par contre, il est évident qu'un match sur /(img)/ ne retournerait qu'une suite de "img" qui n'aurait aucun intérêt !
Un match sur /img.*?src="(.*?)"/ serait plus pertinent. De plus, une attention particulière à la casse serait bénéfique : rendre le match insensible avec une option i en plus de l'option g.
Sinon, Perl offre un raccourci pratique pour récupérer tous les matches d'un coup :
@matches = ($variable =~ m/motif/g);
Sachant, en outre que @matches, évalué en contexte scalaire nous fournit le nombre d'éléments du tableau
Bon courage pour la suite, mais il est parfois pratique d'utiliser des modules spécifiques pour la manipulation "propre" des flux HTML
Et merci au dithyrambique GLDavid pour le gros passage de brosse à reluire
Partager