white_mage
Messages postés47Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention25 février 2010
-
11 déc. 2007 à 09:24
philippeR42
Messages postés10Date d'inscriptionjeudi 14 août 2008StatutMembreDernière intervention11 octobre 2008
-
18 août 2008 à 18:17
Bon...ce message est un problème de vbScript mais il n'y a pas de catégorie....
Voilà mon soucis.
J'utilise l'objet VBScript_RegExp_55.RegExp pour retrouver des valeur dans un text. Voici le format du text :
xxxxx: text à retrouver
yyyyy: autre text
zzzzzz: encore un
aaaaaaa:
voilà le text que je n'arrive pas à retrouver
car il contient des retour à la ligne
Fin
mon but, c'est de récupérer le text donc avec reg.Pattern CeQueJeVeuxRetrouver & ": (.*)\r" Si CeQueJeVeuxRetrouver "xxxxx", ca me renvoie text à retrouver etc....Le problème, c'est pour le "aaaaaaa" en effet, le caractère . représente tous les caractère sauf \r or le champs commence par un \r. Comment dois-je faire ??? je pensais faire qqch comme ça : reg.Pattern = CeQueJeVeuxRetrouver & ": (.*)Fin" mais forcément, vu que le . représente tous sauf \r ça ne fonctionne pas...
white_mage
Messages postés47Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention25 février 2010 14 déc. 2007 à 09:55
^(\w+):\s*([^:]+)\s+$ ne fonctionne pas mais c'est pas grâve car j'ai trouvé comment faire (c'est un peu de la bidouille mais bon)
En faisant un :
text = Replace(text, Chr(10), " "), le caratère chr(13) se retrouve tout seul.
Le caractère Chr(13) n'est pas considéré comme un retour à la ligne... donc après, on remet le caractère Chr(10) et c'est bon...
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 11 déc. 2007 à 13:25
Bonjour à tous,
Bonjour Renfield,
il faut protéger le \en le doublant.
ex:
Option Explicit
Const Texte = "00:08:17 S: DS \ rOOUT OT *;"
Const sChaine = "DS \\rOOUT" 'chaine recherchée
Dim resultatIf RegExpTest(sChaine, Texte) True Then resultat resultat &vbcrlf
'If RegExpTest(sChaine, Texte) = False Then msgbox "expression non trouvée...false"
MsgBox resultat,,"resultat"
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches, RetStr ' Crée la variable.
Set regEx = New RegExp ' Crée une expression régulière.
regEx.Pattern = patrn ' Définit les critères.
regEx.IgnoreCase = True 'True ' Ignore la casse.
regEx.Global = False ' Définit une application globale.
Set Matches = regEx.Execute(strng) ' Lance la recherche.
For Each Match in Matches ' Itère la collection Matches.
resultat = "OK TROUVE"
RegExpTest = True : Exit Function
Next
resultat = "NOK PAS TROUVE"
RegExpTest = False
End Function
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 11 déc. 2007 à 17:23
Re,
Autant pour moi, Renfield, visu de la doc avec
\s qui correspond à tout espace blanc, y compris l'espace, la tabulation, le saut de
page, etc.
Équivaut à "[ \f\n\r\t\v]".
Par contre, d'après la doc, le multiline existe en JScript mais n'est pas référencé en vbs. A confirmer.
djnos
Messages postés19Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention15 février 2008 15 févr. 2008 à 15:49
Moi je dis c'est pas bien les solutions genre tu fais un replace(...)... Et ça aidera pas les gens en galère dans d'autres situations plus particulières... Enfin c'est gentil quand même d'aider les gens et de tenter de trouver des alternatives...
Bon le vrai problème est de savoir si il est possible en VBSCRIPT et non en VB de gérer le multiline au sein des expressions régulières :
Voilà la réponse : souvent les moteurs de regexp ont été écrits pour traiter des lignes seules, et la plupart des languages ont été améliorés pour gérer le cas du multiligne. Pour le VB en général, le caractère . remplace par défaut n'importe quel caractère sauf le \n, il est équivalent à [^\n]. En VB pour modifier ce comportement, il existe la propriété multiline qui active le mutiligne et remplace le comportement de . mais je précise que VBScript n'implémente pas cette propriété.
Si on réfléchis, \s remplace n'importe quel caratère blanc dont \n, d'autre part, \S représente tous les autres caractères qui sont pas \s.
Donc pour représenter n'importe quel caractère possible en VBSCRIPT, on peut écrire [\s\S]
philippeR42
Messages postés10Date d'inscriptionjeudi 14 août 2008StatutMembreDernière intervention11 octobre 2008 18 août 2008 à 18:17
Bonjour a tous,
je saisi un NOm dans une variable d'un inputbox dans le but de verifier si ce Nom existe ou pas dans ma table or, si je saisi en minuscule et que dans ma base le nom existe mais en majuscule le code me renvoi " Nom inexistant" voila j aimerai connaitre le code qui ignorera la casse dans un inputbox