Java Expression régulière d'une addresse ip

Résolu
Chabanus Messages postés 982 Date d'inscription   Statut Membre Dernière intervention   -  
ayudaz Messages postés 21 Statut Membre -
Bonjour,
J'aimerais qu'on me corrige mon expression régulière pour une address ip v4:
#(^[1-2][0-9]{1,2}*/.){3}[1-2][0-9]{1,2}*#
merci
--
Il faut faire partie de la solution et non du problème ;-)
Configuration: Windows Vista
Firefox 3.0.7

5 réponses

  1. ayudaz Messages postés 21 Statut Membre 2
     
    J'ai modifier celle de druzy pour accepter 192.192.192.192 par exemple.
    Voici l'expression régulière modifié :
    ^((2[0-5]{2})|(1[0-9]{2})|([1-9][0-9])|([1-9]))\\.(((2[0-5]{2})|(1[0-9]{2})|([1-9][0-9])|([0-9]))\\.){2}((2[0-5]{2})|(1[0-9]{2})|([1-9][0-9])|([0-9]))$
    1
  2. Chabanus Messages postés 982 Date d'inscription   Statut Membre Dernière intervention   70
     
    Aucune âme charitable ???
    J'ai fais un autre essai :

    if(!ip.matches("^((((1|2)([0-9]){2}) | ([1-9][0-9]) | [0-9])(\\.)){3}(((1|2)([0-9]){2}) | ([1-9][0-9]) | [0-9])"))

    on me dit:

    Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed group near index 101
    ^((((1|2)([0-9]){2}) || ([1-9][0-9]) || ([0-9]))(\.)){3}(((1|2)([0-9]){2}) || ([1-9][0-9]) || ([0-9])

    ^
    at java.util.regex.Pattern.error(Unknown Source)
    laisse tomber.personne.taidera.error(on ne sais jamais :p)
    at java.util.regex.Pattern.accept(Unknown Source)
    at java.util.regex.Pattern.group0(Unknown Source)
    at java.util.regex.Pattern.sequence(Unknown Source)
    at java.util.regex.Pattern.expr(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.<init>(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.matches(Unknown Source)
    at java.lang.String.matches(Unknown Source)
    at ip.main(ip.java:12)

    si quelqu'un s'y connais en ER ...
    0
  3. Cedonix
     
    Salut,

    Je passais par là par hasard, et étant donné que ta question date de plus de 6 mois, je suppose que tu as du résoudre ton problème depuis le temps.

    Sinon voila l'expression que j'utilise pour contrôler une ipv4 :

    ip.matches("^([1-9]\\d{0,2}\\.){3}[1-9]\\d{0,2}$")


    Désolé de déterrer un sujet aussi vieux, mais si quelqu'un passe par hasard ici, ça peut toujours l'aider.
    0
    1. Tomme
       
      Sauf erreur de ma part,

      Je pense que ta RegEx test seulement si les on a 4 fois 3 chiffres avec des points entre. Mais les chiffres peuvent être plus grand que 255 et il ne peuvent pas etre égal à 0.

      Donc 127.0.0.1 est reconnu comme faux
      Alors que 325.485.985.423 est reconnu comme vrais
      0
  4. Cedonix
     
    Oups en effet, c'est une erreur de ma part.
    le plus simple serait :
    "^(\\d{1,3}\\.){3}\\d{1,3}$"


    après bien sûr 325.485.985.423 serais reconnu comme vrai il faudrait affiner.
    Là à froid, je ne sais pas comment tu peux le vérifier dans l'expression régulière, mais tu peux faire un split sur le point et vérifier que les valeurs soient inférieures ou égale à 255.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. druzy
     
    ceci marche : "^(([1-2][0-5]{2})|([1-9][0-9])|([1-9]))\\.((([1-2][0-5]{2})|([1-9][0-9])|([0-9]))\\.){2}(([1-2][0-5]{2})|([1-9][0-9])|([0-9]))$"
    0