[R] RegExp et subroutines

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

[R] RegExp et subroutines

#1

Message par jguinch »

Bonsoir.
Il y a quelques jours, j'ai posté deux petites fonctions qui permettent de vérifier la conformité d'une adresse IP, et extraire les adresses IP d'une chaîne de caractères (http://autoitscript.fr/forum/viewtopic. ... 982#p80982)
Grâce à JCHD (que je remercie), j'ai découvert les sous-routines.

J'arrive à extraire et contrôler les adresses IP sans problème, mais ce que j'aimerais faire (que je n'ai pas réussi), c'est extraire les IP en utilisant les sous-routines (donc mon problème n'est pas technique, c'est un problème de compréhension :? )
J'aimerais comprendre où je bute. Surement un problème de parenthèses, mais j'ai un peu tout essayé sans succès.

La fonction qui permet de contrôler une IP (avec sous-routine) fonctionne bien:
► Afficher le texte_IPv4_IsValid

La fonction d'extraction, que j'aimerais faire fonctionner avec les sous-routines :
► Afficher le texte_IPv4_Extract
Merci d'avance pour votre aide
Euh, j'ai été clair sur l'énoncé ?
Modifié en dernier par jguinch le mar. 24 sept. 2013 10:00, modifié 1 fois.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] RegExp et subroutines

#2

Message par mikell »

Très clair :wink:
C'est marrant ces sous-routines
ça a l'air de marcher
► Afficher le texte
mais il me semble qu'il y a une erreur quelque part
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] RegExp et subroutines

#3

Message par jchd »

J'ai peut-être changé un peu le sujet de l'exercice, mais au pif, ça doit convenir :
► Afficher le texte
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] RegExp et subroutines

#4

Message par jguinch »

Merci à vous deux.
@Mikell : oui, j'ai pas géré ce cas de figure, je m'en occuperai.
Par contre, dans ton code, tu as utilisé (?:, il me semble que c'est non-capturant. Pourquoi est-ce que la capture marche ?

@JC : ton code fonctionne également. Avec une petite modif, on obtient le résultat souhaité, mais comme pour le code de Mikell, je comprends pas pourquoi il y a besoin de faire cette modif :?

Code : Tout sélectionner

    $pattern = "(?x)(?(DEFINE)(?<withoutzero>   2[0-4]\d  |  25[0-5]  |  1\d{2}  |  [1-9]\d? ) ) " & _
                "(?(DEFINE)(?<withzero>   2[0-4]\d  |  25[0-5]  |  [0-1]?\d{1,2}) ) " & _
            "(?<=[^.\d])[b][color=#FF0000](?:[/color][/b](?:(?&withoutzero)(?:\.(?&withzero)){3}))(?=[^.\d])"
Bref...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] RegExp et subroutines

#5

Message par jchd »

Oops, c'est vrai, je t'ai laissé des niveaux de parenthèses complètement inutiles.

Code : Tout sélectionner

$pattern = "(?x)(?(DEFINE)(?<withoutzero>   2[0-4]\d  |  25[0-5]  |  1\d{2}  |  [1-9]\d? ) ) " & _
        "(?(DEFINE)(?<withzero>   2[0-4]\d  |  25[0-5]  |  [0-1]?\d{1,2}) ) " & _
        "(?<=[^.\d]) (?&withoutzero) (?:\.(?&withzero)){3} (?=[^.\d])"
 
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] RegExp et subroutines

#6

Message par jguinch »

Ok, c'est mieux, merci.
En fait, je pensais que pour capturer des données, il fallait obligatoirement mettre des parenthèses... :roll:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] RegExp et subroutines

#7

Message par jchd »

La partie qui "match" est toujours disponible.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre