Ours!!!
Messages postés6Date d'inscriptionmercredi 24 septembre 2003StatutMembreDernière intervention11 décembre 2003
-
11 déc. 2003 à 09:34
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 2008
-
11 déc. 2003 à 12:06
Salut à tous !
Je me heurte actuellement à un problème lié à l'utilisation de la fonction InStr (en vb .net) :
Le fait est que je recherche un terme bien défini, par exemple "and", dans une chaîne, mais InStr me renvoie également cette expression lorsque ce n'est pas exactement le même terme, par exemple "brand"...
N'y a-t-il pas un paramétrage spécial ou peut-être une fonction + évoluée permettant de trouver le terme exact dans une chaîne tout en retournant la position du premier caractère (à la manière de InStr) ?
PS : je pourrai bidouiller en recherchant "and" avec des espaces -> " and ", mais c'est un peu trop 'bricolage' à mon goût et il peut y avoir des cas dans mon traitement où les espaces de sont pas présents...
On m'a également soufflé d'utiliser IndexOf, mais ça ne change rien dans ce cas, ou encore ceci :
Dim str As String = "brand and"
temp = Mid(str, InStr(str, "and"), Len("and"))
Là évidemment, la fonction me retourne "and", mais celui contenu dans "brand" et pas le véritable "and"...
Ours!!!
Messages postés6Date d'inscriptionmercredi 24 septembre 2003StatutMembreDernière intervention11 décembre 2003 11 déc. 2003 à 10:24
Merde, un clic de traviole désolé pour le post vide
(y'a pas de fonction "Edition" ???)
Oui donc je suis en train de faire un teste du caractère avant et après le terme recherché. Je vois pas comment faire autrement et c'est sûrement ce qu'il y a de plus efficace même si de la bidouille de base :D
Vous n’avez pas trouvé la réponse que vous recherchez ?
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200825 11 déc. 2003 à 12:01
' Référence : Microsoft VB Scripts Regular Expressions 5.5
Dim FORMAT_STRING As RegExp
Dim MATCHES, MATCH As Object
Set FORMAT_STRING= New RegExp
FORMAT_STRING.Pattern = "[a-z]{2}[A-Z]{3}[0-9]*[a-zA-Z]+[a|A]"
'Le format de chaine recherché ici est :
' une chaine contenant, à la suite, 2 lettres minuscules, 3 majuscules, 0 ou plusieurs chiffres , au moins une lettre et pour finir la lettre A. ex : "trGEV89gTEdA"
'Ensuite, tu peux faire des traitements dessus :
Set MATCHES = FORMAT_STRING.Execute(maChaineATraiter)
For Each MATCH In MATCHES
'Dans la boucle, MATCH.Value contient alors la valeur extraite de ta chaine de départ et ayant le bon format
'Tu fais donc les traitements que tu veux ici. Du genre, vérifier si la chaine récupérée est bien un and et pas un brand en vérifiant Len(MATCH.Value)
Next
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200825 11 déc. 2003 à 12:06
Si j'ai mis un pattern aussi compliqué, c'est pour que tu apprennes rapidement à écrire des expressions régulières.
Dans ton cas, contente toi de rechercher le pattern suivant :