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

 


Dernière réponse
Sujet : expression reguliere : @IP
Enzut Bon, OK, je vous fais chier une dernière fois (mais cette fois-ci, ça marche, je l'ai tester...
 tu définis:  
ip [0-1][0-9][0-9]|[2][0-4][0-9]|[25][0-5]
 
%%
{ip}"."{ip}"."{ip}"."{ip}  {printf("%s\n", yytext);}
.  {/* rien sinon echo par défaut dans lex */}
 
Bon, c'est du code lex, mais le tout y est...

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
Enzut Bon, OK, je vous fais chier une dernière fois (mais cette fois-ci, ça marche, je l'ai tester...
 tu définis:  
ip [0-1][0-9][0-9]|[2][0-4][0-9]|[25][0-5]
 
%%
{ip}"."{ip}"."{ip}"."{ip}  {printf("%s\n", yytext);}
.  {/* rien sinon echo par défaut dans lex */}
 
Bon, c'est du code lex, mais le tout y est...
Tentacle

enzut a écrit a écrit :

houai, pardon, j'ai répondu trop vite.  c'est en effet [0-255] pour tout les "trucs" compris entre la borne 0 et la borne 255...  Ca marche aussi avec [a-z] si on veut les lettres de l'alphabet...  :)  




 
nonon [0-255] ça correspond à [0125] car il va d'abord prendre l'écart 0-2 puis 5

Enzut houai, pardon, j'ai répondu trop vite.  c'est en effet [0-255] pour tout les "trucs" compris entre la borne 0 et la borne 255...  Ca marche aussi avec [a-z] si on veut les lettres de l'alphabet...  :)
fabriceMerc bo j'ai un truc qui marche mais bon si il y a plus court:
 
function valider_ip ($ip) {
  if (is_string ($ip) && ereg('^([0-9]{1,3})\.([0-9]{1,3})\.'
                              '([0-9]{1,3})\.([0-9]{1,3})$'
                              $ip,$part)) {
 
  if ($part[1] <= 255 && $part[2] <= 255 &&
      $part[3] <= 255 && $part[4] <= 255)
     return TRUE; #ip valide
 }
}

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc--[/jfdsdjhfuetppo]

Tentacle

matafan a écrit a écrit :

[0..255] ça match "0", "2", "5" et ".". Les expressions régulières c'est fait pour filtrer du texte, pas des données numériques.  




 
 
Tiens oups j'avais pas tilté que c'était - qu'on utilisait et non .. :)

Tentacle Je préfèrerais utiliser un split de la chaîne puis faire un foreach dessus pour vérifier chaque nombre.
matafan [0..255] ça match "0", "2", "5" et ".". Les expressions régulières c'est fait pour filtrer du texte, pas des données numériques.
Tentacle

enzut a écrit a écrit :

ben, en expression régulière, tu devrais pouvoir faire un truc du style [0..255].[0..255].[0..255].[0..255]  si tu fais ça dans Lex et que tu lui envois une IP, il te dira si c'est valable ou pas...  mais bon...  je suis pas vraiment sûr c'est ça que tu voulais  




 
pour moi [0..255] ça correspond à [0125] c'est à dire de 0 à 2 ou un 5 répété une unique fois.

Enzut ben, en expression régulière, tu devrais pouvoir faire un truc du style [0..255].[0..255].[0..255].[0..255]  si tu fais ça dans Lex et que tu lui envois une IP, il te dira si c'est valable ou pas...  mais bon...  je suis pas vraiment sûr c'est ça que tu voulais
fabriceMerc en fait je voudrais savoir si l'adresse IP saisie est correcte  
j'ai tenté sans les expressions régulieres mais c'est enorme ( test 0<x<255 ...)
 
en fait je vois pas comment en utilisant les expressions régulieres vérifir que chaque nombre de l'@IP est bien compris ( strictement ) entre 0 et 255 .
 
mercie

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