Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème avec mon expression régulière [ Divers / General ] (white_mage)

mardi 11 décembre 2007 à 09:24:33 | Problème avec mon expression régulière

white_mage

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...

Merci pour votre aide

White_Mage();

mardi 11 décembre 2007 à 11:31:44 | Re : Problème avec mon expression régulière

Renfield

Administrateur CodeS-SourceS
Set oReg = CreateObject(".... oReg.Pattern = "...." oReg.Multiline = True tu peux utiliser : http://www.vbfrance.com/codes/REGEXP-WORKSHOP_17331.aspx pour tester ta regexp. nb. il existe bien une section propre au VBS ^^

mardi 11 décembre 2007 à 13:25:30 | Re : Problème avec mon expression régulière

JMO

Membre Club


 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 resultat
If 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


Thème vbs: Thèmes / Visual Basic 6 / Langages dérivés / VBScript

jean-marc

mardi 11 décembre 2007 à 14:26:20 | Re : Problème avec mon expression régulière

Renfield

Administrateur CodeS-SourceS
'lut JMO pas d'accord avec ton "\\r" on ne cherche pas la chaine \r proprement dite... \r symbolise le saut de ligne... j'utiliserai par exemple la regexp suivante: ^(\w+):\s*([^:]+)\s+$ en utilisant : regEx.IgnoreCase = True regEx.MultiLine = True regEx.Global= True ca découpe les chaines {clé}: {valeur} même si la valeur est sur plusieurs lignes...

mardi 11 décembre 2007 à 17:23:46 | Re : Problème avec mon expression régulière

JMO

Membre Club


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.

jean-marc

mardi 11 décembre 2007 à 20:29:03 | Re : Problème avec mon expression régulière

Renfield

Administrateur CodeS-SourceS
en vbs je sais pas, j'utilise le même objet depuis VB6 (VbScript RegExp)
donc a priori, ca devrait rouler en VBS...

Renfield
Admin CodeS-SourceS- MVP Visual Basic

vendredi 14 décembre 2007 à 09:55:33 | Re : Problème avec mon expression régulière

white_mage

Réponse acceptée !
^(\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...

White_Mage();

vendredi 14 décembre 2007 à 09:56:11 | Re : Problème avec mon expression régulière

white_mage

En tout cas, merci pour votre aide !

White_Mage();

vendredi 14 décembre 2007 à 21:34:42 | Re : Problème avec mon expression régulière

Renfield

Administrateur CodeS-SourceS
ca aurait du fonctionner, as tu bien configurer le MultiLine ?


Renfield
Admin CodeS-SourceS- MVP Visual Basic

mardi 18 décembre 2007 à 17:24:01 | Re : Problème avec mon expression régulière

white_mage

Oui...le multiline était configuré...
Je n'ai plus trop le temps de tester mais je le ferai à l'occase

Merci pour ton aide....et a+
White_Mage();


1 2

Cette discussion est classé dans : problème, text, expression, régulière, cequejeveuxretrouver


Répondre à ce message

Sujets en rapport avec ce message

Problème SQL [ par Evangelion ] J'exécute la requête SQL suivante avec un objet ADODC.Command. cmdContacts.CommandText = "SELECT * FROM Suivi WHERE Nom = '" & datcboNom.Text & "' AND Gros problème...Résultat opération.... [ par Chricl ] je suis débutant et je rencontre le problème suivant:d = Text1.Textintschilling = dschilling = intschilling / 200.482schillingue = schilling * 6.55957 Problème d'enregistrer des textbox [ par Etienne ] Comment fait-on pour enregistrer plusieurs textbox dans un fichier text, avec chaque text des textbox par ligne, avec la commande commondialog ? Etien ***MAYDAY**** [ par JoBlo ] Hello a tous !J'ai un petit problème.Dans un programme, je dois écrire un texte dans un textbox. Par la suite, je dois faire apparaitre tout mon text **encore besoin d'aide** [ par JoBlo(encore) ] Rebonjour tous ! Merci beaucoup pour votre précédente aide. j'ai encore un petit problème pour vous !La situation : j'ai 3 text box et un command but Problème avec fichier text [ par PtitJeoJeo ] Tout d'abord merci de m'accorder un peu de ton temps !Alors voila mon problème :Je voudrais écrire dans un fichier text comme ceciopen "c:\essai.txt" problème newbie de varibles [ par ganja120 ] Bonjour,Comment fait-on pour mettre des variables avec du texte?textePrivate Sub Command2_Click()heurevar = heure.Textminutevar = minute.Textsecondeva Problème de copie ! [ par z980x ] J'ai avancé par rapport à mon ancient problème mais je n'ai pas encore trouvé la bonne solution.Voici mes lignes de codes :accès = "Text1.Text"Fichier problème de zone de text vide [ par dauphin70 ] bonjourvoici mon probleme sous vb6:dans mon programme il existe certaines zones de texte ou des DTPicker qu'on est pas forcé de remplir, mais le probl Problème de fractionnement de ligne [ par opus32 ] Bonjour, j'ai un message d'erreur que je ne comprend pas suite au fractionnement d'une ligne trop longue : DB.Execute "CREATE TABLE T_Client( _


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,842 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.