PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → VérifieExpressionRégulière
VérifieExpressionRégulière
Débuté par Lauv, 27 avr. 2017 12:04 - 5 réponses
Membre enregistré
219 messages
Popularité : +4 (4 votes)
Posté le 27 avril 2017 - 12:04
Bonjour tout le monde,
ça fait longtemps que je ne sollicite plus votre aide mais la je sèche vraiment...

je veux récupérer une contenance en "ml" dans une chaîne et je souhaite utiliser un expression régulière
pour se faire j'ai taper ce code (qui ne retourne rien...) :
VérifieExpressionRégulière(sMaChaine,"([0-9]{2,3} ml)",sContenance)


je fais surement une erreur sinon ca marcherait, du coup j'ai regardé l'aide mais sans succès...


Merci d'avance pour votre aide et bon appétit :)
Posté le 27 avril 2017 - 14:34
Bonjour,


Le 4/27/2017 à 4:04 AM, MeAndYou a écrit :
Bonjour tout le monde,
ça fait longtemps que je ne sollicite plus votre aide mais la je sèche
vraiment...

je veux récupérer une contenance en "ml" dans une chaîne et je souhaite
utiliser un expression régulière
pour se faire j'ai taper ce code (qui ne retourne rien...) :
VérifieExpressionRégulière(sMaChaine,"([0-9]{2,3} ml)",sContenance)


je fais surement une erreur sinon ca marcherait, du coup j'ai regardé
l'aide mais sans succès...


Regarde mieux : verifiexpressionreguliere retourne VRAI ou FAUX.

Pour le reste, sans voir le code complet...

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Merci d'avance pour votre aide et bon appétit :)
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 27 avril 2017 - 23:03
hello,
Fabrice, MeAndYou s'est certainement mal exprimé. Effectivement VérifieExpressionRégulière retourne un booléen mais dans son cas il a un motif (pattern) avec des parenthèses donc il veut récupérer le résultat dans la chaîne sContenance passée en paramètre et c'est cette chaîne qui doit être vide (code qui ne retourne rien) dans son cas.
MeAndYou montre-nous des exemples de chaîne que tu veux tester (sMachaine).

--
Ami calmant, J.P
Message modifié, 27 avril 2017 - 23:04
Membre enregistré
219 messages
Popularité : +4 (4 votes)
Posté le 13 juin 2017 - 12:23
Bonjour à tous, j'était passé à un autre projet et je viens de me remettre sur ce projet du coup je me suis rendu compte qu'il y avait des espace que je ne précisais pas dans mon expression régulière...
Je me tourne a nouveau vers vous car j'ai un autre problème avec les expressions régulières... c'est pas mon fort...

Je souhaite supprimer les chaines qui sont entre "<--! -->" (les commentaires en html) jai déjà testé ça :
sTexte est une chaîne = fChargeTexte("c:\texte.txt")

sVerifreguliere est une chaîne
sVerifreguliere2 est une chaîne
sVerifreguliere3 est une chaîne
VérifieExpressionRégulière(sTexte,"<!--.*-->",sVerifreguliere)
VérifieExpressionRégulière(sTexte,"<!--.*[^<!--]-->",sVerifreguliere2)
VérifieExpressionRégulière(sTexte,"(<!--){1,1}.*(-->){1,1}",sVerifreguliere3)

rien de tout ca ne marche... j'en ai fais d'autre un peu dans tous les sens mais je ne suis décidément pas doué!

Un petit coup de main de votre part ne serait pas de refus :)
Merci d'avance les windeviens ;)
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 17 juin 2017 - 09:44
hello,
VerifieExpressionRegulière n'est pas assez "balaise" pour faire cela facilement, je te conseille l'objet automation Vbscript.regexp.
Exemple :
HtmlAtester est une chaîne =[
<!DOCTYPE html>
<html>
<head> <!-- Document Header Starts -->
<title>This is document title</title>
</head> <!-- Document Header Ends -->
<body>
<p>Document content goes here.....</p>
</body>
</html>
]
MonregEx est un objet automation "VBScript.RegExp"
MonregEx>>Pattern = "<!--(.*?)-->"
MonregEx>>IgnoreCase=True
MonregEx>>GLOBAL = True
MonregEx>>MultiLine = True
//Replace all HTML tag matches with the empty string
strOutput est une chaîne = MonregEx>>Replace( HtmlAtester, "")
Trace(strOutput)


résultat :
<!DOCTYPE html>
<html>
<head>
<title>This is document title</title>
</head>
<body>
<p>Document content goes here.....</p>
</body>
</html>


--
Ami calmant, J.P
Message modifié, 17 juin 2017 - 09:46
Membre enregistré
219 messages
Popularité : +4 (4 votes)
Posté le 20 juin 2017 - 09:49
finalement j'ai trouvé une solution assez simple en utilisant la fonction Position() et en faisant une boucle pour rechercher toutes les balises et a chaque boucle j'ajoute la chaîne dans un tableau puis je fais une boucle sur mon tableau en supprimant les chaines, se trouvant dans le tableau, dans la chaîne principale
:) :) :) :)
basique mais ça marche :merci:
Bon Dev