J'ai fait beaucoup de recherches sur Google pour obtenir une réponse appropriée sur la façon d'utiliser ou de commencer à utiliser des expressions régulières dans VBA.
Je l'ai enfin compris, donc j'aimerais partager mes connaissances avec vous. S'il vous plait corrigez moi si je me trompe.
Par défaut, l'option Expression régulière est désactivée dans Word 2007, pour activer ce plase, procédez comme suit,
1). Allez dans Outils> Références comme indiqué ci-dessous.
2). Cochez maintenant l'option "Microsoft VBScript Regular Expressions 5.5" puis appuyez sur oh comme indiqué ci-dessous.
3). Désormais, vous pouvez créer un objet RegExp dans votre script VBA. Vous pouvez vérifier qu'il recherche dans la base de données d'objets comme expliqué ci-dessous. Affichage> Navigateur d'objets (ou appuyez sur F2), comme illustré ci-dessous.
et recherchez l'objet RegExp
4). L'objet RegExp utilise des expressions régulières pour correspondre à un modèle. Les propriétés suivantes sont fournies par RegExp. Ces propriétés définissent le modèle pour comparer les chaînes transmises à l'instance RegExp:
a. Pattern: Une chaîne qui définit l'expression régulière.
b. IgnoreCase: Une propriété booléenne qui indique si vous devez tester l'expression régulière par rapport à tous correspondances possibles dans une chaîne.
c. Global: Définit une valeur booléenne ou renvoie une valeur booléenne qui indique si un modèle doit correspondre à toutes les occurrences dans une chaîne de recherche entière, ou si un modèle doit correspondre uniquement à la première occurrence.
RegExp fournit les méthodes suivantes pour déterminer si une chaîne correspond à un modèle particulier d'une expression régulière:
d. Test: Renvoie une valeur booléenne qui indique si l'expression régulière peut être mise en correspondance avec succès contre la chaîne.
e. Execute: Renvoie un objet MatchCollection qui contient un objet Match pour chaque correspondance réussie.
Veuillez trouver un exemple de comparaison pour RexExp fourni dans le forum Microsoft msdn.
Function TestRegExp(myPattern As String, myString As String)
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String
' Create a regular expression object.
Set objRegExp = New RegExp
'Set the pattern by using the Pattern property.
objRegExp.Pattern = myPattern
' Set Case Insensitivity.
objRegExp.IgnoreCase = True
'Set global applicability.
objRegExp.Global = True
'Test whether the String can be compared.
If (objRegExp.Test(myString) = True) Then
'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.
For Each objMatch In colMatches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "String Matching Failed"
End If
TestRegExp = RetStr
End Function
J'espère que cela pourrait aider complètement quelqu'un, car j'ai perdu presque une demi-journée dessus.
Merci