Matcher une regex plusieurs fois

Matcher une regex plusieurs fois - Perl - Programmation

Marsh Posté le 21-02-2008 à 16:46:33    

Hello tout le monde,
 
Je suis bloqué sur mon programme.
J'aimerais récuperer plusieurs mots dans une chaine qui matchent avec ma regex .
Exemple de string pour recuperer les adresses ips:
 
$string= "dezdezfrefev 192.168.0.1 Broadcast Affrekgtrgùfbgfg^b$ 192.168.0.2 trvtrgteg5gtrtyhy54yt"
 
La regex que j'utilise est :  
 
if ($results=~/(\d+.\d+.\d+.\d+)/)
{
push (@ips,$1)
}
 
Ce qui donne en gros:  
#!/usr/bin/perl
 
$string= "dezdezfrefev 192.168.0.1 Broadcast Affrekgtrgùg^b$ 192.168.0.2 trvtrgteg5gtrtyhy54yt";
if ($string=~/(\d+.\d+.\d+.\d+)/)
{
push (@ips,$1)
}
print @ips;
 
Et cela ne m'affiche que 192.168.0.1 :(.
Quelqu'un aurait il une idée ?
D'avance merci
Cordialement
Junt

Reply

Marsh Posté le 21-02-2008 à 16:46:33   

Reply

Marsh Posté le 21-02-2008 à 16:49:30    

Remplace :

Code :
  1. if ($string=~/(\d+.\d+.\d+.\d+)/)


 
Par :

Code :
  1. while ( $string =~ m/(\d+.\d+.\d+.\d+)/g )

Reply

Marsh Posté le 21-02-2008 à 16:54:16    

Merci Elmoricq.
C'est parfait It works !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed