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

  FORUM HardWare.fr
  Programmation
  Perl

  [perl] matcher sur plusieurs lignes avec <>

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[perl] matcher sur plusieurs lignes avec <>

n°1219973
gandolfoui​lle
Posté le 10-10-2005 à 21:34:21  profilanswer
 

Bonjour à tous,  
 
Je cherche à matcher une expression sur l'entrée standard avec l'opérateur <> et une regexp.
Comment faire pour que ma regexp porte sur plusieurs lignes???
 
J'ai essayé les options g, m, c sans succès.
 
Quelqu'un a une idée?
 
Merci!

mood
Publicité
Posté le 10-10-2005 à 21:34:21  profilanswer
 

n°1219994
pospos
Posté le 10-10-2005 à 21:46:07  profilanswer
 

si tu parcours ton fiwhier avec un while alors tu ne peu traiter qu'une ligne du fichier à chaque boucle. la solution serait, si ton fichier n'est pas trop gros, de le charger entierement dans une variable puis de faire ton match dessus.
 
Pour faire ca tu peu utiliser le module Slurp ou File::Slurp
 
ou tu peu le faire à la mano:
my $content = do{local $/;<FILE>};
$content =~...

n°1223492
gandolfoui​lle
Posté le 14-10-2005 à 19:14:48  profilanswer
 

Ok merci/
Je crois qu'il y a un autre facteur en plus a prendre en compte, il faut enlever les retours à la ligne avec la fonction chomp().

n°1223565
pospos
Posté le 14-10-2005 à 22:19:15  profilanswer
 

chomp va virer le caractere de separation, c'est à dire $/, et si on slurp le fichier alors $/ est indefini...
si tu prend ligne par ligne alors tu n'a aucune chance de matcher plusieurs lignes en meme temps

n°1228259
matafan
Posté le 21-10-2005 à 17:13:21  profilanswer
 

Pas besoin de virer les \n, utilise simplement //s ou //ms suivant ce que tu veux faire.

n°1228325
pospos
Posté le 21-10-2005 à 17:58:00  profilanswer
 

Vous pouvez utiliser ce que vous voulez, vous ne pourrez pas matcher plusieurs lignes d'un coup si vous lisez le fcihier ligne par ligne !
il faut le slurper et faire le match sur le tout

n°1228941
matafan
Posté le 23-10-2005 à 04:39:03  profilanswer
 

Mon post était en complément du tien évidemment ($/ + //ms).


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

  [perl] matcher sur plusieurs lignes avec <>

 

Sujets relatifs
compilation 'statique' d'un script perl pour windowsPerl et Mysql --> débutant
update de données sur plusieurs lignes[Excel VBA] Ne pas afficher les lignes masquées d'un plan
Query sur plusieurs databasesTriturage de fichier en PERL
[Question] - Comment lancer un script perl en tache de fondmettre plusieurs formulaire l'un d'en l'autre
Plusieurs pieds de page dans un seul fichier html 
Plus de sujets relatifs à : [perl] matcher sur plusieurs lignes avec <>


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