smr78
Messages postés25Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention28 août 2022
-
11 déc. 2006 à 20:29
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 2016
-
13 déc. 2006 à 14:43
Bonjour,
Je cherche en Vb6, une expression régulière pour chercher à capturer mot2 et mot 3 dans une sous chaîne "blah blah mot1 /mot2/mot3" qui elle même est dans une chaîne principale plus importante.
J'ai auparavant pu isoler les sous-chaînes, mais comment capturer et extrraire mot2 et mot 3 seulement dans les sous-chaînes qui contiennent blah blah mot1 au début?
Soit :
Set reg=new RegEx
reg.pattern=pattern
fullstring="test test blah blah mot1 /mot2/mot3 test test blah blah /mot2/mot3 test"
toto=reg.Execute(fullstring)(0)
Le pattern trivial "(?:blah blah mot1 )(.*)\/(.*)\/" retourne la bonne sous-chaîne mais complète.
Comment distingue t-on donc les parenthèses entre le groupement et la capture?
De la même façon, lorsque je veux capturer le premier mot1 d'une sous-chaîne, seulement si elle se termine par un mot clé, la commande Execute retourne la chaîne complète avec :
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 13 déc. 2006 à 14:43
salut,
pour le mot au début : execute te renvoie un tableau dans lequel 0 est la chaine complète reconnue, 1 le premier groupement, 2 le second....donc un truc dans le genre de reg.Execute(fullstring)(1)
pour le mot en fin : le pattern serait plutôt : "(\w+)(?=\s*mot2\s*mot3)"
pour récupérer reg.Execute(fullstring)(1)