Aide et conseils concernant AutoIt et ses outils.
OmegAMRS
Niveau 4
Messages : 54 Enregistré le : mar. 15 sept. 2009 09:37
Status :
Hors ligne
#1
Message
par OmegAMRS » jeu. 17 sept. 2009 16:01
Bonjour,
j'ai un p'tit souci d'expressions régulières, ça fait trop longtemps que j'ai pas manipulé, j'y arrive plus
dans cette chaîne
cible"><option value="5147">Explorator 1 (F5147)< je voudrai extraire
Explorator 1 (F5147)
et dans celle-ci
cible"> <option value="5323">Terra 1< ,
5323 Terra 1
merci d'avance aux pros des regExp
OmegA
jbnh
Niveau 11
Messages : 1932 Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status :
Hors ligne
#2
Message
par jbnh » jeu. 17 sept. 2009 17:01
Encore plus facile avec stringbetween (voir doc et recherche du forum !)
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !
Merci
OmegAMRS
Niveau 4
Messages : 54 Enregistré le : mar. 15 sept. 2009 09:37
Status :
Hors ligne
#3
Message
par OmegAMRS » jeu. 17 sept. 2009 17:09
ah c'est pas idiot ça, merci , j'y avais pô pensé !
Edit : sauf que, sauf que ... il peut y avoir moultes caractères en plus dans ma chaîne :s
notamment des saut de lignes entre
cible"> et
<option value="5323">Terra 1<
donc
obligé d'utiliser un regExp
une idée ?
orax
Modérateur
Messages : 1479 Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status :
Hors ligne
#4
Message
par orax » jeu. 17 sept. 2009 19:18
Code : Tout sélectionner
$a=StringRegExp('cible"><option value="5147">Explorator 1 (F5147)<','(?is)cible["'']>.*?<option value=["'']5147["'']>(.+?)<',3)
MsgBox(0,"",$a[0])
$a=StringRegExp('cible"> <option value="5323">Terra 1<','(?is)cible["'']>.*?<option value=["''](.+?)["'']>(.+?)<',3)
MsgBox(0,$a[0],$a[1])
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Iste
Niveau 11
Messages : 1870 Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status :
Hors ligne
#5
Message
par Iste » jeu. 17 sept. 2009 19:21
Essaye avec cela :
.* signifiant : 'peut etre des truc (mais pas de retour a la ligne)' et le ? placé a ou il est dit 'et tu reprend au premier '<opt[...]' que tu trouve
Peut etre faudra t-il mettre le 1er .*? entre parenthèse, je suis pas tres bon pour les regexp :$
mais dans tout les cas, _ArrayDisplay est ton ami
Signez ici
OmegAMRS
Niveau 4
Messages : 54 Enregistré le : mar. 15 sept. 2009 09:37
Status :
Hors ligne
#6
Message
par OmegAMRS » ven. 18 sept. 2009 09:25
merci beaucoup à vous deux , je vais testé tout ça dans la journée
Edit :
Code : Tout sélectionner
$a=StringRegExp('cible"><option value="5147">Explorator 1 (F5147)<','(?is)cible["'']>.*?<option value=["'']5147["'']>(.+?)<',3)
MsgBox(0,"",$a[0])
$a=StringRegExp('cible"> <option value="5323">Terra 1<','(?is)cible["'']>.*?<option value=["''](.+?)["'']>(.+?)<',3)
MsgBox(0,$a[0],$a[1])
ah oui mais en fait j'ai oublié de préciser que les chaînes "
5147 " , "
Explorator 1 (F5147) " et "
5323 " et "
Terra 1 "
étaient variables :s désolé, ça me parraissait évident parce que j'ai le nez sur mon problème et mon code, alors que ça ne l'est pas du tout.
kay69
Niveau 2
Messages : 27 Enregistré le : jeu. 03 sept. 2009 14:56
Status :
Hors ligne
#7
Message
par kay69 » ven. 18 sept. 2009 20:02
Et avec sa ?
Code : Tout sélectionner
$Chaine = 'cible"> <option value="5323">Terra 1<'
$Split = StringSplit( $Chaine, "value=", 1)
$Valeur = StringReplace( $Split[2], '"', "")
$Valeur = StringReplace( $Valeur, '>', " ")
$Valeur = StringReplace( $Valeur, '<', "")
BugFix
Niveau 1
Messages : 8 Enregistré le : mar. 29 sept. 2009 20:53
Localisation : Germany
Status :
Hors ligne
#8
Message
par BugFix » mar. 29 sept. 2009 21:03
Hi, my first post on frensh board.
I understand frensh language a little, but most things are clear by reading code.
Use following code to solve your problem:
Code : Tout sélectionner
$str1 = 'cible"><option value="5147">Explorator 1 (F5147)<'
$return = StringRegExpReplace($str1, '(\w+"><\w+\s\w+="\d+">)(\w+\s\d+\s\(\w\d+\))<', '$2')
ConsoleWrite($return & @CRLF) ; ==> Explorator 1 (F5147)
$str2 = 'cible"> <option value="5323">Terra 1<'
$return = StringRegExpReplace($str2, '(\w+">\s*<\w+\s\w+=")(\d+)("\>)(\w+\s\d)<', '$2 $4')
ConsoleWrite($return & @CRLF) ; ==> 5323 Terra 1