IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

saise adresse IP avec regex


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut saise adresse IP avec regex
    Bonjour tout le monde voici mon problème :

    j ai ecrit un code qui permet de saisir des adresses IP avec masque.

    Le problème c'est que la regex que j ai ecrite (j suis pas tres familiarisé avec les regex pr l instant)

    me pose des soucis :

    je m explique :

    si j insère par exemple : 223.100.122.52 --> ca marche l '@ est lue correctement

    par contre si j insère : 192.168.100.114 --> ca ne marche pas : c'est la dernière plage qui me pose des soucis aparemment le programme accespte les nombres a deux chiffres (comme 52) et pas ceux à 3 chiffres (comme 100)

    et j arrive pas a comprendre pourquoi parce que la regex que j utilise est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String masque = "^[0-2]?[0-9]{0,2}\\.[0-2]?[0-9]{0,2}\\.[0-2]?[0-9]{0,2}\\.[0-2]?[0-9]{0,2}$";

    est-ce que la regex est correcte? le problème est il autre part?

    merci pour votre aide.

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Je pense que tu t'embètes. La validité d'une adresse IP est quelque chose qui a été amené de tester un certain fois par pleins de gens. Donc on peut imaginer qu'une regex a déjà été faite pour ce type.

    Ainsi, tu pourras trouver par exemple celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b$
    Qui a l'avantage de bien brider conformément aux contraintes de l'adresse IP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    Citation Envoyé par zorm Voir le message
    Je pense que tu t'embètes. La validité d'une adresse IP est quelque chose qui a été amené de tester un certain fois par pleins de gens. Donc on peut imaginer qu'une regex a déjà été faite pour ce type.

    Ainsi, tu pourras trouver par exemple celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b$
    Qui a l'avantage de bien brider conformément aux contraintes de l'adresse IP
    salut et merci pour ta réponse.

    t sur de ta regex?

    y a un erreur quant je l implémente : "Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\)

    je crois que l'anti slash avant le {3}

    je l ai remplacé par le double \\ comme ca ca compile mais il me ressort que l adresse n est pas valide.

    si tu pouvais tester cette regex ca m aiderait comme ca je saurais si c'est ma saisie avec masque qui est la source du problème ou c'est autre chose.

    merci.

  4. #4
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Chez moi, ca semble bien marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            Pattern pattern = Pattern.compile("^\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b$");
            Matcher matcher = pattern.matcher("192.168.0.1");
            System.out.println(matcher.find());
            matcher = pattern.matcher("223.100.122.52");
            System.out.println(matcher.find());
            matcher = pattern.matcher("127.0.0.1");
            System.out.println(matcher.find());
            matcher = pattern.matcher("192.168.100.114");
            System.out.println(matcher.find());
            matcher = pattern.matcher("256.0.0.1");
            System.out.println(matcher.find());
            matcher = pattern.matcher("127.0.0.256");
            System.out.println(matcher.find());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    true
    true
    true
    true
    false
    false

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    Merci beaucoup pour ton aide zorm,

    ca marche nickel chez moi aussi..

    La premiere fois j avais fait copier-coller pr ta regex ca marchait pas
    apres j me suis rendu compte qu'il manquait des antislash, j en ai rajouté mais j en avais omis un!!

    encore merci !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec Regex
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/07/2006, 14h50
  2. Réponses: 2
    Dernier message: 25/05/2006, 11h11
  3. [RegEx] analyseur de requette SQL avec RegEx - [casse tête]
    Par sebbod dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2006, 10h56
  4. Problème avec RegEx et une Query string
    Par Erakis dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 15h48
  5. problème adresse web avec apache
    Par xlinformatik dans le forum Apache
    Réponses: 4
    Dernier message: 08/09/2005, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo