[R] Probleme avec les expressions régulières

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

[R] Probleme avec les expressions régulières

#1

Message par Bayo »

Bonjour,

Je souhaiterai décortiquer un fichier texte et récupérer certaines informations. J'ai énormément de mal avec les expressions régulières.

Siège 2 : XXXXXX (1500 en jetons)

Sur cette ligne j'essaye de récupérer le numéro du siège je suis pour le moment sur ça $numsiege=StringRegExp($hligne,'(?:Siège) ([0-9]{1,2})' )
mais ça me trouve 1 sur toutes les lignes. sinon j'ai 0. J'ai essayé plein de truc mais je n'y arrive pas.

On va commencer par ça et je vais essayer de chercher pour récupérer le reste.

Merci d'avance.
Modifié en dernier par Bayo le mer. 27 mai 2015 11:33, modifié 1 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..]Pb avec les expressions régulières

#2

Message par jbnh »

Je sais que souvent les expressions régulières sont plus fiables, mais pourquoi ne pas simplement commencer avec un

Local $aArray = _StringBetween("Siège 2 : XXXXXX (1500 en jetons)", "Siège ", " :")

Si cela peut vous debloquer...
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..]Pb avec les expressions régulières

#3

Message par Bayo »

ben en faite c'est ce que je suis en train d'essayer. Quand je test ta ligne ça fonctionne mais quand je passe par
Local $aArray = _StringBetween($hligne, "Siège ", " :")
_ArrayDisplay($aArray)

$hligne contient bien le même format que je t'ai donné mais _arraydisplay ne s'affiche pas

Edit : après plusieurs tests si je met en dur une ligne dans $ligne par exemple et que je tape Local $aArray = _StringBetween($ligne, "Siège ", " :") ça marche

quand je le fait avec une ligne lu dans mon fichier texte Local $aArray = _StringBetween($hligne, "Siège ", " :") ça marche pas

Si j'enlève l'espace avant les : Local $aArray = _StringBetween($hligne, "Siège ", ":") ça marche mais si je fait un Stringlen du résultat il me remonte 2 caractère...

Je comprend pas tout là :'(
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: [..]Pb avec les expressions régulières

#4

Message par jchd »

Sur cette ligne j'essaye de récupérer le numéro du siège je suis pour le moment sur ça $numsiege=StringRegExp($hligne,'(?:Siège) ([0-9]{1,2})' )
mais ça me trouve 1 sur toutes les lignes. sinon j'ai 0. J'ai essayé plein de truc mais je n'y arrive pas.
Y compris lire la doc de StringRegExp, en particulier ce qui concerne le troisième paramètre ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..]Pb avec les expressions régulières

#5

Message par Bayo »

Bon je viens de m'en sortir avec $numsiege = StringRegExp($hligne,'Siège (\d{1,2})', $STR_REGEXPARRAYGLOBALMATCH).

Maintenant la chaîne de caractère, je laisse le sujet un peu ouvert, si je m'en sort pas.

Merci

Edit : Bon ça à l'air d'aller, merci je résout
Répondre