begin process at 2012 02 14 12:41:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Problème avec mon expression régulière


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec mon expression régulière

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ée 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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales