Utilisation de StringRegExp

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
hyluzion
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 12 févr. 2016 10:29
Status : Hors ligne

Utilisation de StringRegExp

#1

Message par hyluzion »

Bonjours, j'aimerais grâce à StringRegExp retrouver la chaine de caractères entière ci dessous dans le code source de ma page et en extraire le chiffre entier avec la virgule et le deuxieme point (109,109.89), se chiffre sera variable, mais je nage avec la syntaxe et les expressions régulières.
Pourriez vous s'il vous plait m'aider à mettre sa en forme ?


<a class="tri-cyy" href="/abc/def/ghi/">.109,109.89</a>

StringRegExp ($CodeSource, ? , ?)
Merci !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Utilisation de StringRegExp

#2

Message par jguinch »

$value = StringRegExp($codeSource, '(?i)<a class="tri-cyy" href=[^>]+>\.([^<]+)', 1)
MsgBox(0, "", $value[0])
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
hyluzion
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 12 févr. 2016 10:29
Status : Hors ligne

Re: Utilisation de StringRegExp

#3

Message par hyluzion »

Bonjour, merci Jguinch de ta réponse.
Peu tu m'expliquer le code pour que je puisse le comprendre ?

En lanque française, mon stringregexp doit faire :

Trouver un <
Trouver un a (et uniquement, pas une lettre aléatoire)
Trouver class (et uniquement, pas une suite de lettre)
Trouver un = (uniquement)
Trouver un " (uniquement)
Trouver un tri (et uniquement, pas une suite de lettre)
Trouver un - (uniquement)
Trouver un cyy (et uniquement, pas une suite de lettre)
Trouver un " (uniquement)
Trouver un espace (uniquement)
Trouver un href (et uniquement, pas une suite de lettre)
Trouver un = (uniquement)
Trouver un " (uniquement)
Trouver un / (uniquement)
Trouver un abc (et uniquement, pas une suite de lettre)
Trouver un / (uniquement)
Trouver un def (et uniquement, pas une suite de lettre)
Trouver un / (uniquement)
Trouver un ghi (et uniquement, pas une suite de lettre)
Trouver un / (uniquement)
Trouver un " (uniquement)
Trouver un > (uniquement)
Trouver un . (uniquement)
Trouver une suite de nombre aléatoire de taille non défini
Trouver une , (uniquement)
Trouver une suite de nombre aléatoire de taille non défini
Trouver un . (uniquement)
Trouver une suite de nombre aléatoire de taille non défini
Trouver un < (uniquement)
Trouver un / (uniquement)
Trouver un a (et uniquement, pas une lettre aléatoire)
Trouver un > (uniquement)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Utilisation de StringRegExp  

#4

Message par jguinch »

(?i) : non sensible à la casse
<a class="tri-cyy" href= : Cette chaîne de caractère, littéralement
[^>]+ : tout caractère qui n'est pas ">", une ou plusieurs fois
> : le caractère ">"
\. : un point
([^<]+) : tout caractère qui n'est pas "<", une ou plusieurs fois. Les parenthèses servent à capturer la chaîne souhaitée

On aurait aussi pu écrire : (?)<a class="tri-cyy" href=.+?>\.(.+?)<
(?) : non sensible à la casse
<a class="tri-cyy" href= : Cette chaîne de caractère, littéralement
.+?> : tout caractère, jusqu'au prochain caractère ">" (inclus)
\. : un point
(.+?)< : tout caractère, jusqu'au prochain caractère "<" (inclus). Les parenthèses servent à capturer la chaîne souhaitée
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: Utilisation de StringRegExp

#5

Message par mikell »

Trouver un abc (et uniquement, pas une suite de lettre)
etc
Si l'adresse du lien doit être mentionnée précisément (si confusion possible avec d'autres liens dans la page) alors il faut l'écrire dans l'expression

$value = StringRegExp($codeSource, '(?i)<a class="tri-cyy" href="/abc/def/ghi/">\.([^<]+)', 1)
MsgBox(0, "", $value[0])
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
hyluzion
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 12 févr. 2016 10:29
Status : Hors ligne

Re: Utilisation de StringRegExp

#6

Message par hyluzion »

Parfait j'ai tout compris. Merci beaucoup à tout les deux.
Répondre