|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 13 ![]() |
bonjour à tous,
je suis nouveau sur le forum et je suis tombé dessus en cherchant des infos sur les expressions régulières. Je ne suis pas programmeur, mais j'ai des besoins et j'ai l'impression qu'on peut faire un peu tout avec cette technique d'écriture. Avant de fouiller plus dans la création d'expressions régulières compliquées, J'aimerais savoir s'il est possible avec de filtrer une adresse IP ? J'ai un réseau en 172.16.0.0 et je veux que seules certaine @ip soient filtrées. Par exemple, toutes celles qui sont comprisent entre 172.16.2.30 et 172.16.3.148 Merci de votre aide Bartez |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2005 Messages : 8 311 ![]() |
Salut,
Les expressions régulières servent à la manipulation des châines de caractères comme le découpage, la réécriture ou la validation syntaxique. Dans ton cas, c'est la validation syntaxique qui t'intéresse mais malheureusement, ce n'est pas assez puissant. Tu peux globalement vérifier qu'à tel ou tel endroit de la chaîne tu as tel caractère mais tu ne peux pas dire "à tel endroit j'ai un nombre compris entre X et Y". Pour ça, faut opter pour une autre façon de faire (qui ne s'appuie pas sur les expressions régulières) en utilisant plutôt une écriture binaire des adresses IP et des masques également binaires ou des comparaisons pour vérifier qu'une adresse est bien dans une plage donnée. Désolé.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Ici les regex ne te seront pas utiles.
Fait un explode de ton ip avec comme délimiteur '.' et fait des tests sur les valeurs. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 13 ![]() |
Merci de vos conseils... Je vais donc chercher autre chose
je pensais bêtement qu'on pouvais écrire quelque chose comme ^[2-3]{1}.[0-1][3-4]{1}[0-9]{1}$ En fait dans le fichier lque je cherchais à modifier, a syntaxe autorisée était @172.16.2.[0-9]+$ Bonne soirée à vous tous Bartez |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
C'est surtout entre 30 et 148 que ça va pas etre possible en regex ^^
Si tu veux t'amuser, tu fait un masque de sous réseau et tu fais des opérations binaires entre le masque et les ips. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 13 ![]() |
Le problème c'est que je ne peux pas faire grand chose au niveau des données. Le fichier que je voudrait modifier est en fait un fichier texte qui fait parti d'un logiciel que je ne peux pas modifier. C'est simplement en regardant les divers fichiers de configurations dont il dépend que je me suis apperçu qu'il y avait ce genre d'écriture à l'intérieur. Par contre je ne peux pas détourner son fonctionnement quand il va lire les données dans ce fichier pour lui faire faire autre chose que de lire son fameux fichier texte....Je sais pas si j'ai été bien clair
est ce qu'il ne serait pas possible, même si ce n'est pas très joli comme écriture, de faire quelque chose qui ai une logique de ce style: par exemple pour tester es adresses 172.16.2.30 à 172.16.2.148 ------------- Si j'ai 2 chiffres qui se suivent de 3 à 3 pour le 1er et de 0 à 9 pour le 2em ou Si j'ai 3 chiffres qui se suivent de 1 à 1 pour le 1er, de 0 à 4 pour le 2em et 0 à 8 pour le 3em = Alors OK Les 2 condition dans la même ------------- |
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Sa semble fonctionner :
Code :
#^172\.16\.(?:(?:2\.[3-9][0-9])|(?:2\.\d{3})|(?:3\.\d{2})|(?:3\.1[0-3][0-9])|(?:3\.14[0-8]))$#m
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 13 ![]() |
Merci pour ton exemple 'Korko Fain', C'est exactement ce dont j'avais besoin
Maintenant que j'ai vu que les Regex pouvaient répondre à mon besoin, Je vais me pencher plus sérieusement sur la question pour adapter ton code à mes besoins qui sont un peu plus compliqués. Encore merci de votre aide. Ce sujet est donc clos. bartez |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Hesite pas si tu as encore besoin de regex ^^
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 13 ![]() |
Ok, Merci c'est sympa !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com