Bonjour,
Ce code me permet de chercher si le TxtSource contient l’un des caractères contenue dans le pattern.
Pour le remplacement je dois spécifier la position de mes groupes de capture manuellement "$7$12".
J’aimerais récupérer ces groupes de capture automatiquement.
J’ai essayé de jouer un peu avec une boucle sur les caractères de mon pattern et un appel match.Submatches(i), mais je ne m’en sort pas.
Un petit coup de main SVP ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
TxtSource = "Un test? Pourquoi faire? c'est fou ça?"
ReslutSpeciChars = ""	
 
Dim strText, RegularExpressioN
 
FindSpeciChars = "(\\)|(\/)|(\*)|(\+)|(\-)|(\=)|(\?)|(\!)|(\:)|(\;)|(\,)|(\')|(\&)|(\~)|(\{)|(\})|(\()|(\))|(\[)|(\])|(\@)|(\^)|(\¨)|(\$)|(\£)|(\€)|(\.)|(\<)|(\>)|(\|)" 
 
	strText = TxtSource		
	Set RegularExpressioN = New RegExp
	RegularExpressioN.Pattern = FindSpeciChars
	RegularExpressioN.Global = True
	Set Matches = RegularExpressioN.Execute(strText)
		If Matches.Count > 0 Then		  
		    MatchMsg = Matches.Count & " correspondance(s) trouvée(s)." & vbCRLF
		    	For Each Match In Matches
		      		MatchMsg = MatchMsg & "Correspondance trouvée """ & Match.Value & """ en position: " & Match.FirstIndex & vbCrLf
		    	Next
		    'MsgBox MatchMsg
		Else
		    MsgBox "Aucun match", 0, "VBScript RegExp Tester"
		End If		  										
	strText = RegularExpressioN.Replace(strText, "$7$12")
	Set RegularExpressioN = Nothing
	ReslutSpeciChars = strText
 
MsgBox TxtSource & vbCrLf & ReslutSpeciChars & vbCrLf & MatchMsg