[R] Utiliser les expressions régulières

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [R] Utiliser les expressions régulières

#21

Message par FernandG »

Bonjour,

Je viens d'essayer avec le code que je vous avais donné :

Code : Tout sélectionner

$sVal = StringRegExp($source, 'heading1black">(\d{0,3}\,?\d{0,3}\.\d{5})(\sMil)?(\sBil)?', 3)
et cela fonctionne sans souci :?: :wink:

Pensez à changer aussi cette ligne de code, pour vérifier:

Code : Tout sélectionner

    msgbox(0,"***","MoneyFrom :"& $devise[$MoneyFrom][1] &@CRLF& "MoneyTo :"&$devise[$MoneyTo][0] &@CRLF& $devise[9][0] &@CRLF& $devise[$MoneyTo][1] &@CRLF&$sVal[0])
 
Ou remplacer votre $sVal par $sVal[0] en fin de ligne.

Bonne journée.
AutoItement.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Utiliser les expressions régulières

#22

Message par bloodwolff »

Ce n'étais pas moneyfrom à mettre dans la règle mais moneyTo
► Afficher le texte
Compte skype : bloodwolfff
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Utiliser les expressions régulières

#23

Message par pierrotm777 »

Alors là , je suis stupide !

J'aurais le même besoin mais pour cette ligne:

Code : Tout sélectionner

<br />Page generated [color=#FF0000]14:09 London 22/01/2011[/color]<br clear="all" />
Je souhaiterais avoir la partie en rouge dans une variable, que la fonction puisse retourner, par exemple $sDate
Modifié en dernier par pierrotm777 le sam. 22 janv. 2011 16:06, modifié 1 fois.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Utiliser les expressions régulières

#24

Message par bloodwolff »

Tu veux un truc qui va souvent te sauver la vie avec les regexp !
Met .+? dans les endroits qui varie. Et tu mets entre parenthèse la partie que tu veux capturer. Ça te fera des petits pattern basique mais qui fonctionneront. Donc avec ton pattern sa donnerait

Code : Tout sélectionner

<br />(.+?)<br clear="all" />
Compte skype : bloodwolfff
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Utiliser les expressions régulières

#25

Message par pierrotm777 »

Ah super , oui c'est ce que je souhaite.
Voici le résultat:

Code : Tout sélectionner

$sDate = Stringregexp($source, '<br />Page generated(.+?)<br clear="all" />', 3 )
Merci beaucoup !
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: [R] Utiliser les expressions régulières

#26

Message par FernandG »

Bonjour,

La solution de bloodwolff est valable mais trop généraliste à mon goût, car les tag "BR" sont trop fréquents dans le code source d'une page web. Par chance et après vérification, un seul résultat sera retourné dans ce cas. Il faut intégrer un autre critère de recherche plus précis et unique. Dans votre cas, Page generated vera l'affaire :wink:

En partant de votre exemple de base, essayer le code suivant :

Code : Tout sélectionner

#Include <Inet.au3>

Global $MoneyFrom = 1
Global $MoneyTo = 9
Global $Value = 10

MsnMoney()

Func MsnMoney()
    Local $sUrl = "http://uk.moneycentral.msn.com/investor/market/crncconverter.asp?iCurIdFrom="&$MoneyFrom&"&iCurIdTo="&$MoneyTo&"&dAmt="&$Value
    $sSource = _INetGetSource($sUrl)
    If @error Then Return SetError(1)
    $date = StringRegExp($sSource, '>Page\sgenerated\s([^<]+)<', 3)
    MsgBox(0, "***", $date[0])
EndFunc
Bon après midi.
AutoItement.
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Utiliser les expressions régulières

#27

Message par bloodwolff »

Oui mais j'essayais juste de lui donner une façon simple d'y arriver par la suite :)
Compte skype : bloodwolfff
Répondre