Page 1 sur 1
[..] RegExp !
Posté : jeu. 17 sept. 2009 16:01
par OmegAMRS
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
Re: [..] RegExp !
Posté : jeu. 17 sept. 2009 17:01
par jbnh
Encore plus facile avec stringbetween (voir doc et recherche du forum !)
Re: [..] RegExp !
Posté : jeu. 17 sept. 2009 17:09
par OmegAMRS
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 ?
Re: [..] RegExp !
Posté : jeu. 17 sept. 2009 19:18
par orax
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])
Re: [..] RegExp !
Posté : jeu. 17 sept. 2009 19:21
par Iste
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

Re: [..] RegExp !
Posté : ven. 18 sept. 2009 09:25
par OmegAMRS
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.
Re: [..] RegExp !
Posté : ven. 18 sept. 2009 20:02
par kay69
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, '<', "")
Re: [..] RegExp !
Posté : mar. 29 sept. 2009 21:03
par BugFix
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