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

  FORUM HardWare.fr
  Programmation
  Perl

  Perl: expression reguliere

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Perl: expression reguliere

n°1024232
suomi
Posté le 24-03-2005 à 22:06:03  profilanswer
 

Bonjour
 
J'aimerai recuperé dans un fichier qui est en fait du code html une seaunce de texte comprise uniquement entre les balises <PRE> et </PRE>.
Cette zone de texte peut s'etendre d'une a plusieurs lignes, et les balises peuvent commencer en debut de ligne ou apres des caractères.
 
Voila se que j'ai fait comme expression valable uniquement si les balises sont sur une seule ligne:

Code :
  1. =~ /.*<PRE>(.*)<\PRE>.*/


 
comment faire??? merci pour votre aide... :hello:

mood
Publicité
Posté le 24-03-2005 à 22:06:03  profilanswer
 

n°1024303
matafan
Posté le 24-03-2005 à 23:07:16  profilanswer
 
n°1024323
suomi
Posté le 24-03-2005 à 23:32:06  profilanswer
 

Merci pour ta reponse.
En faisant ta modification, cela ne marche pas dans ce cas:

Code :
  1. <html>
  2. <PRE> MARCHE <PRE> UNDEF
  3. UNDEF
  4. DES chose
  5. <PRE> TEXTE A RECUP MARCHE PAS :sedfsdfsdfsdf
  6. sdfsdfdsfsdfsdfsfdsfdsfsdfsdfsdfsdf
  7. sdf<\PRE>
  8. <html>


 
 :whistle:  
 
 

n°1024326
Taz
bisounours-codeur
Posté le 24-03-2005 à 23:33:13  profilanswer
 

.*?

n°1024344
the real m​oins moins
Posté le 25-03-2005 à 00:15:42  profilanswer
 

suomi a écrit :

Merci pour ta reponse.
En faisant ta modification, cela ne marche pas dans ce cas:

Code :
  1. <html>
  2. <PRE> MARCHE <PRE> UNDEF
  3. UNDEF
  4. DES chose
  5. <PRE> TEXTE A RECUP MARCHE PAS :sedfsdfsdfsdf
  6. sdfsdfdsfsdfsdfsfdsfdsfsdfsdfsdfsdf
  7. sdf<\PRE>
  8. <html>


 
 :whistle:

ben en meme temps y'a pas de "</pre>" dans ton example


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1024371
suomi
Posté le 25-03-2005 à 00:49:06  profilanswer
 

Bon exusez moi si j'évoque mal mon problème...
 
J'ai un fichier qui est en faite un code html avec plusieurs balises, pleins de texte. L'info qui m'interesse se trouve uniquement entre les balises <PRE> et <\PRE> de ce fichier. Ces balises peuvent etre en debut ou à n'importe quel endroit de la ligne. De plus ces 2 balises peuvent s'etendre sur une ou plusieurs lignes.
 
Pour extraire mes données voila comment je compte faire:
 

Code :
  1. open (fichier,"fichier.html" );
  2. while (my $ligne =<fichier> ){
  3.   if ($ligne =~ /<PRE>(.*)<\/PRE>/is){
  4.     print $ligne;}
  5. }


 
MAis ceci ne marche pas comme pour ici:
 
Extrait de mon fichier:

Code :
  1. <HR><p><PRE>>X07448|IGHV1-2*01|Homo sapiens|F|V-REGION
  2. caggtgcagctggtgcagtctggggctgaggtgaagaagcctggggcctcagtgaaggtc
  3. tcctgcaaggcttctggatacaccttcaccggctactatatgcactgggtgcgacaggcc
  4. cctggacaagggcttgagtggatgggacggatcaaccctaacagtggtggcacaaactat
  5. ......
  6. </PRE><P>
  7. Suite.....

n°1024375
the real m​oins moins
Posté le 25-03-2005 à 00:58:41  profilanswer
 

ben forcement, si tu fais ton match sur une seule ligne et pas tout le fichier...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1024442
suomi
Posté le 25-03-2005 à 09:31:33  profilanswer
 

Ben je suis désolé mais je ne vois pas trop comment faire alors... tu suggères quoi?  :??:  
 
Merci pour vos réponses

n°1024476
pospos
Posté le 25-03-2005 à 10:03:55  profilanswer
 

Code :
  1. my $html = do {local $/=undef; <FICHIER>};
  2. my ($pre) = $html =~ ...


Message édité par pospos le 25-03-2005 à 10:04:13
n°1024497
suomi
Posté le 25-03-2005 à 10:20:15  profilanswer
 

Merci Pospos pour ta réponse.
Ta solution marche mais que dans le cas ou il y a dnas le code html qu'une balise <PRE>....<\PRE>
Dans mon cas, il y en a plusieurs dans la page et je dois toutes les récuperer. Ici avec ta solution, il trouve la premiere et la derniere balise et il met tout entre les 2...
 

mood
Publicité
Posté le 25-03-2005 à 10:20:15  profilanswer
 

n°1024520
suomi
Posté le 25-03-2005 à 10:36:18  profilanswer
 

Bon j'ai reussi, en intégrant la réponse de Pospos dans une boucle
Merci beaucoup pour votre aide...
 :jap:

n°1024825
matafan
Posté le 25-03-2005 à 15:00:53  profilanswer
 

Sans boucle : /<pre>(.*?)<\/pre>/gis
 
Encore une fois : http://perldoc.com/perl5.8.4/pod/p [...] ESCRIPTION


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

  Perl: expression reguliere

 

Sujets relatifs
[PERL] Petite question sur substitution....[RESOLU]perl sous windows XP
[PERL]Tache planifiée console redirigée ???[PERL] question facile <STDIN>
acces à un fichier réseau à partir d'un script PERL[Perl|CGI] Pb de cookie
[Perl] sort et tri multiple !Problème d'affichage en PERL sous UNIX
[PHP/PERL] expression régulière : apostrophe[Perl]expression régulière
Plus de sujets relatifs à : Perl: expression reguliere


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