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

Résolu/Fermé
Chabanus Messages postés 978 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 11 novembre 2011 - 19 mars 2009 à 18:18
ayudaz Messages postés 20 Date d'inscription mercredi 11 août 2010 Statut Membre Dernière intervention 31 mars 2012 - 31 mars 2012 à 12:39
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
A voir également:

5 réponses

ayudaz Messages postés 20 Date d'inscription mercredi 11 août 2010 Statut Membre Dernière intervention 31 mars 2012 2
31 mars 2012 à 12:39
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
Chabanus Messages postés 978 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 11 novembre 2011 70
19 mars 2009 à 20:28
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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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