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

 


Dernière réponse
Sujet : [Perl] pb avec fichier
Fantom jibix >  
 
J'ai un doute sur ton test... je pense que tu devrais plutot comparer ta variable par rapport a la chaine de comp cad faire la chose suivante :
 
if ($text1=~ /^yahoo\.com\/adv\//)  
 
J'ai mit la chaine de comp en dur car je veux mettre en evidence que les / et le . peuvent etre mal interpreter lors du test.
 
Je ne dis pas que ca marche mais je pense au moins que ca peut apporter qqc.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Fantom jibix >  
 
J'ai un doute sur ton test... je pense que tu devrais plutot comparer ta variable par rapport a la chaine de comp cad faire la chose suivante :
 
if ($text1=~ /^yahoo\.com\/adv\//)  
 
J'ai mit la chaine de comp en dur car je veux mettre en evidence que les / et le . peuvent etre mal interpreter lors du test.
 
Je ne dis pas que ca marche mais je pense au moins que ca peut apporter qqc.
teagle T'aurais pas plutôt intérêt à inverser tes 2 variables:
if ($text1=~ /^$text2/) {...}
 
Paceke tu peux pas trouver (vu ton expression régulière) une chaine plus longue dans une chaine plus courte (si t'as compris koi moi dire).
D'après ton truc, tu cherches si yahoo.com/adv/perl ($text1) apparait dans yahoo.com/adv ($text2)... Ca marchera pas...
Ce ki me semble le mieux:
if ($text1 =~ /^$text2.*$/)
jibix ^up :)
jibix une autre question :
si j'ai une variable par ex:
$text1="yahoo.com/adv/perl"  
 
et que je veux le comparer  
à un $text2="yahoo.com/adv/"
 
lorsque je fais un truc du style :
if ($text2=~ /^$text1/) {...}
ça ne marche pas !
est-ce que l'expression regulière est bonne ??
ce qui m'interesse c'est le "yahoo.com.adv" du moment que cette partie existe dans ma comparaison alors je rentre dans la condition.
merci
jibix merci FaNToM !
c'est mon comparateur "eq" qui deconnait
"=~é " marche beaucoup mieux !
Fantom Tu n'as qu'a faire un affichage de ta ligne courante dans ta boucle...
 
sinon fait la ton foreach comme ca :  foreach $CURRENT_LINE (@ligne)  
 
et pour ton motif, recherche dans la ligne les occurences qui peuvent y ressembler de la maniere suivante :
if ( $CURRENT_LINE =~ $motif )
 
peut etre que ca ira mieux :p
jibix voila, j'ai un fichier qui contient des adresses.
Je voudrais parcourir ce fichier mais en même temps comparer chaque ligne à une variable de type string :
 
open (FSOR,'file.txt)
my $motif="www.blabla.com";
my @ligne = <FSOR>;
foreach (@ligne) {
   if ("$_" eq "$motif" ) {
      print "\n <<< $motif >>>";
   }  
}
ce motif existe mais il ne me l'affiche pas donc comment recupére chaque ligne de mon fichier pour être sûre que la comparaison soit valide ?
(www.blabla.com existe dans le fichier , quand je fais une lecture de mon fichier avec $_ je peux le voir)
merci !

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)