Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1375 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Extract de terme entre "et" commerciale dans la ligne

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extract de terme entre "et" commerciale dans la ligne

n°2180272
dubis22
Posté le 13-03-2013 à 17:31:13  profilanswer
 

Bonjour,  
 
Le script suivant :  

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. my $infile = '34.html';
  4. my $target = "file=mp4\:";
  5. open (IN, $infile) or die $! ;
  6. foreach my $ligne  (<IN> ) {
  7. if ($ligne =~ /$target/) {
  8.   print  "$ligne\n";
  9.   }
  10. }
  11. close (IN);


 
Me renvoi cette ligne :
 
<embed type="application/x-shockwave-flash" src="http://capitulosdenovela.net/swf/2.swf" style="" id="mpl" name="mpl" quality="high" allowfullscreen="true" allowscriptaccess="always" flashvars="skin=&plugins=&file=mp4:univisionflash/media/13/01/18/130118_601/130118_2777821_Chantaje_1358863384_500.mp4&streamer=rtmp://cp31851.edgefcs.net/ondemand&autostart=false&adttext.config=http://www.capitulosdenovela.net/fondo/fondo4.png&abouttext=capitulosdenovela.net - Telenovelas y Series!&aboutlink=http://www.capitulosdenovela.net/" width="100%" height="400"></embed>
 
 
Comment faire pour que  la sortie soit reduite à ce minimun :
univisionflash/media/13/01/18/130118_601/130118_2777821_Chantaje_1358863384_500.mp4
sachant que les nombres peuvent changer ....  
 
Merci de votre aide.....
 
 
 

mood
Publicité
Posté le 13-03-2013 à 17:31:13  profilanswer
 

n°2180288
gilou
Modérateur
Modzilla
Posté le 13-03-2013 à 18:42:02  profilanswer
 

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use autodie;
  5.  
  6. my $infile = '34.html';
  7. my $target = 'file=mp4:';
  8. open(my $fh, $infile);
  9. foreach (<$fh> ) {
  10.  print "$1\n" if m/(?:$target)([^&> ]+)/;
  11. }
  12. close($fh);


[^&> ] fait arrêter la capture du texte si on rencontre un &, un > ou un espace. S'il peut y avoir des espaces dans le path, alors utiliser [^&>] à la place.
A+,


Message édité par gilou le 13-03-2013 à 19:00:56

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2180296
dubis22
Posté le 13-03-2013 à 19:39:52  profilanswer
 

Merci Gilou,
très efficace et très instructif ....  
Donc une question : qu'est ce que le m/(?:$target)/
et une remarque : Le if est généralement avant l’exécution de la commande ....  

n°2180335
gilou
Modérateur
Modzilla
Posté le 14-03-2013 à 00:03:09  profilanswer
 

m/regex/ c'est un match de l'expression régulière (par $_ si rien n'est précisé)
(?:regex) c'est un groupe qui n'est pas sauvegardé, donc qui n'est pas pris en compte pour les $1, $2, etc. Ça sert souvent a faire du un contexte à gauche de matching d'expression régulière, comme dans mon exemple.
 

Citation :

Le if est généralement avant l’exécution de la commande ....  

Sauf que il faudrait que je crée un bloc:
if (test) {commande;}  
ce qui chez moi prends trois lignes systématiquement
if (test) {
  commande;
}
alors que je n'en ai pas besoin dans l'autre sens:
commande if (test);
Donc pour une commande simple,  je préfère ce style qui s'écrit sur une ligne.
Ça marche aussi avec unless
commande unless (test);
voire même avec un foreach:
print "$_" foreach (<$fh> );
 
A+,


Message édité par gilou le 14-03-2013 à 00:11:59

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Extract de terme entre "et" commerciale dans la ligne

 

Sujets relatifs
[WORD 2010] Sélectionner et déplacer une ligne dans un tableauSupprimer la ligne X d'un fichier txt
problème retour à la ligneRenommage de fichier avec le contenu de la 1ère ligne
Macro pour supprimer une ligne[java] Ligne qui bloque tout mon programme
Ajouter une ligne non complèteAfficher ligne de la valeur recherché
[RESOLU] [VBA] Créer un onglet pour chaque ligne répondant à 1 critèreAide VBA, Somme de chaque ligne d'un tableau
Plus de sujets relatifs à : Extract de terme entre "et" commerciale dans la ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR