Voici un petit prog que je m'étais fait pour tester mes regex quand j'ai développé
http://newsgroup.codes-sources.com/ (voir la colorisation des messages sur ce site pour comprendre l'utilité) car c bien pratique les regex mais des fois, faut un peu faire du essai/echec pour arriver à ce que l'on veut faire :-)
Les regex ont l'avantage d'être très rapide et si on les maîtrise bien, on peut faire des choses vraiment puissantes avec avec un temps d'éxécution minime.
Source / Exemple :
' Voir le zip mais voici le code qui est dans le frm
Option Explicit
Private ObjRegex
Private ObjRegexTrouve
Private Sub Command1_Click()
On Error Resume Next
Err.Clear
Dim TmpTxtHTML, i
Set ObjRegex = New RegExp
TmpTxtHTML = Me.TxtHTML
Me.TxtResultat.Text = ""
Me.TxtResultat2.Text = ""
ObjRegex.Global = True
ObjRegex.IgnoreCase = True
' Définition de la patern
ObjRegex.Pattern = "" & Me.TxtReg & ""
' Remplacement des occurences
TmpTxtHTML = ObjRegex.Replace(TmpTxtHTML, Me.TxtRegRepl.Text)
Me.TxtResultat = TmpTxtHTML
TmpTxtHTML = Me.TxtHTML
' Définition de la patern
ObjRegex.Pattern = "" & Me.TxtReg & ""
' Execution de la Regex
Set ObjRegexTrouve = ObjRegex.Execute(TmpTxtHTML)
' Pour chaque occurence trouvé, on met Occurence N° devant
If ObjRegexTrouve.Count > 0 Then
For i = 0 To ObjRegexTrouve.Count - 1
DoEvents
Me.TxtResultat2 = Me.TxtResultat2 & vbCrLf & "[Occurence " & i & "]" & ObjRegexTrouve(i).Value
Next
Else
Me.TxtResultat2 = TmpTxtHTML
End If
' S'il y a une erreur dans la regex, on l'affiche dans une msgBox
If Err.Number <> 0 Then MsgBox ("Erreur dans le regex : " & vbCrLf & Err.Description)
End Sub
Conclusion :
N'oubliez pas de faire référence à "Microsoft VBScript Regular Expression 5.5" (ou 5.6 selon la version que vous avez :)
Si vous n'avez pas ça, dans la liste des références, alors, allez télécharger la dernière version de "Windows script" (5.6 actuelement sur :
http://www.microsoft.com/france/scripting/ )
P.S : JE NE SUIS PAS UN EXPERT DES REGEX alors si vous avez des questions à ce sujet, ne me les posez pas, vous n'aurez pas de réponse :) (posez-les dans le forum, merci)
P.S2 : J'en ferai une version ASP d'ici peu pour ceux que ça intéresse (je la mettrai sur www.aspfr.com biensûr ;-) )
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.