|
|
|
Bonsoir,
Je dois être fatigué ce soir... je ne comprends pas pourquoi je n'arrive pas à extraire une chaine. J'ai du texte dans une variable obtenue par : my $page = getprint('http://xxxxxxxxxxx') or die 'Unable to get page'; Un extrait du contenu de $page : .... 6HwySTmdYJp2dpaWKEregYrVfn9/B0xkD2U6+e+sOaHqImTfLrycUOIZM1hJwC3oemPXbi/y5PnsrJ136bUa8pxu69BklmANWwDRkgR1wmwVaglyi3Nz6JLQ+ ZG5NxQsgNdAhmIfJN7wxgoWg9fxzPQ+c/g9YAIXgeUKCyipJO4uR/wswAOIwB/5IgxvbAAAAAElFTkSuQmCC" alt="PHP logo" /></a><h1 class="p">PHP Version 5.6.36</h1> </td></tr> </table> <table> <tr><td class="e">System </td><td class="v">Linux node04.cluster1.easy-hebergement.net 4.4.111-cluster-lts #1 SMP Wed Jan 10 14:53:24 UTC 2018 x86_64 </td></tr> <tr><td class="e">Build Date </td><td class="v">May 13 2018 14:24:33 </td></tr> <tr><td class="e">Configure Command </td><td class="v"> './configure' '--prefix=/opt/php56' .... Je veux récupére le "Linux node04.cluster1.easy-hebergement.net 4.4.111-cluster-lts #1 SMP Wed Jan 10 14:53:24 UTC 2018 x86_64". Je fais : my $val = $page =~ m/<tr><td class="e">System <\/td><td class="v">(.*)<\/td><\/tr>/; print "--> $val\n"; .... et $val est vide. Je teste avec les mêmes choses sur <https://regex101.com/> et sur <https://www.myregextester.com/>, j'ai bien le match dans group1. Vous voyez ou je me trompe ? Merci |
|
|
|
kurtz le pirate , dans le message
<5e67cae8$0$5877$426a34cc>, a écrit : > my $val = $page =~ m/<tr><td class="e">System <\/td><td > class="v">(.*)<\/td><\/tr>/; > print "--> $val\n"; > ... et $val est vide. Déjà, pour récupérer une capture, il faut un contexte liste : my ($val) = ... Mais si ça avait marché, tu aurais $val = 1, ce qui n'est pas le cas. Ici, il faudrait simplifier la regexp jusqu'à trouver quel bout ne trouve pas. |
|
|
On 10/03/2020 21:26, Nicolas George wrote:
[..] >776a34cc>, a écrit : > Déjà, pour récupérer une capture, il faut un contexte liste : > my ($val) = ... > Mais si ça avait marché, tu aurais $val = 1, ce qui n'est pas le cas. > Ici, il faudrait simplifier la regexp jusqu'à trouver quel bout ne > trouve pas. oui, déjà le contexte liste...merci |
|
|
On 11/03/2020 15:10, kurtz le pirate wrote:
Pour info et comme je ne m'en sors pas avec LWP::Simple et getprint(), je suis parti sur une autre méthode : my $url = 'http://xxxxxxxxxxxxxx'; my $html = qx{wget --quiet --output-document=- $url}; if ($html =~ m/System <\/td><td class="v">(.*)<\/td>/) { print ">> $1 <<\n"; } Il semblerait donc que getprint() renvoi des données... pas exploitables directement :( Ca fonctionne comme ça. Cela me suffit. |
|
|
kurtz le pirate , dans le message
<5e6a6dd6$0$21591$426a74cc>, a écrit : > Il semblerait donc que getprint() renvoi des données... pas exploitables > directement :( Si la seule différence avec get est que ça fait un print en plus, alors je n'ai pas la même expérience. |
|
Discussions similaires | |
Extraction chaine
|
|
extraction de chaine
|
|
Extraction de chaine
|
|
Extraction de chaine en DOS
|
Fuseau horaire GMT +2. Il est actuellement 04h55. | Privacy Policy
|