[R] Retrouver du texte dans une page web

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
elcuicui
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 20 avr. 2012 17:04
Status : Hors ligne

[R] Retrouver du texte dans une page web

#1

Message par elcuicui »

Bonjour,

J'ai un petit soucis sur mon code, je dois tester si une ligne de texte apparaît ou non dans une page, et je n'ai pas trouvé mieux que les expressions régulières pour tester ça, sauf que ça ne marche pas du tout !

Je joint mon code :

Code : Tout sélectionner

$phrasetest = StringRegExpReplace($ligne[17], """", "")
    $bodytext = _IEBodyReadText($oIE)
    $valeur = StringRegExp($bodytext, $phrasetest)
Donc $ligne[17] contient ma phrase à retrouver, sauf qu'il arrive que celle ci ait une valeur du genre :

Code : Tout sélectionner

Avec un versement initial (brut de frais de versements) de xxx € et des versements programmés mensuels de xxx € (brut de frais de versement), vous obtiendrez dans xx années un capital de xxx € (hors fiscalité des rachats).
 
Du coup, je ne sais pas si le fait de mettre les parenthèses du coup ça me fait pas foirer quelque chose... Si vous avez des idées, n'hésitez pas, je cherche depuis un bout de temps sans savoir comment me dépêtrer de cette situation.

Merci d'avance !!
Modifié en dernier par elcuicui le jeu. 10 mai 2012 10:34, modifié 1 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Retrouver du texte dans une page web

#2

Message par sylvanie »

Bonsoir,
oui votre soucis réside bien en ceci.
Il faut retraiter la pattern de recherche en remplaçant les ( ) respectivement en \( et \) :

Code : Tout sélectionner

$phrasetest = StringRegExpReplace('test de (quote) "" !', """", "")
$phrasetest = StringRegExpReplace($phrasetest, "([\x28\x29])", "\\$1") ; ici on regarde si on trouve (, alias \x28, ou ), alias \x29 pour les remplacer par \\ (ce qui donne \ tout court) puis la parenthèse détectée via sa backward référence cad $1
ConsoleWrite($phrasetest&@CRLF)
$test2='test de (quote)  ! 2 le retours'
ConsoleWrite(StringRegExp($test2,$phrasetest)&@CRLF)
 
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Retrouver du texte dans une page web

#3

Message par mikell »

De toute façon tester la présence de toute une phrase qui fait 2 lignes me semble un brin casse-gueule :mrgreen:
Pourquoi ne pas simplement trouver des mots-clé et les tester dans la regexp ?

BTW remarque que StringInStr est quand même moins compliqué...

Code : Tout sélectionner

If StringInStr($bodytext, $phrasetest) Then $bingo
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
elcuicui
Niveau 1
Niveau 1
Messages : 3
Enregistré le : ven. 20 avr. 2012 17:04
Status : Hors ligne

Re: [..] Retrouver du texte dans une page web

#4

Message par elcuicui »

Ok, nikel, tout marche bien ! Merci tous
Répondre