Prima di pensare a RegEX, voglio capire se con LIKE sia fattibile la discriminazione di cui ho bisogno.
Devo individuare una SubStringa all'interno di una Stringa, le casistiche sono queste:
Str1="txtA" <--- Stringa da cercare
Casistiche:Str2="Me!txtA.Value" Str2="Me![txtA].Value" Str2="Sub txtA_Change()" Str2="Me.txtA.Value" Str2="Me!txtA!pippo"Quindi, prima posso avere:
"![._ "
e dopo:
"!]._ "
Si tratta di testo VBA da testare, e può, nella sua sintassi assumere queste casistiche.
Sapendo che i caratteri speciali come i brackets devono essere raddoppiati... ed inseriti nella lista... ho pensato ad una cosa simile:
Str2 Like "*[[.!_ ]" & str1 & "[.!_ ]]*"La cosa strana è che il Pattern iniziale funziona, mentre quello finale no...!
Esempio:
? "Me[txtA.Value" Like "*[[[.!_ ]txtA*" ' raddoppio Vero ? "Me[txtA.Value" Like "*[[.!_ ]txtA*" ' senza raddoppio Vero ? "Me[txtA.Value" Like "*[[.!_ ]txtA[!. ]]*" FalsoMa se tolgo il raddoppio del brackets in chiusura va ma ovviamente non lo riconosce..? "Me[txtA.Value" Like "*[[.!_ ]txtA[!. ]*" Vero ? "Me[txtA.Value" Like "*[[[.!_ ]txtA[!. ]*" ' raddoppio Vero ? "Me[txtA]Value" Like "*[[ _!.]txtA[.!_ ]*" FalsoOvviamente anche il [!] è uno Special Char... che ho anche provato a racchiudere e raddoppiare...
In sostanza non so se sbaglio il Pattern in chiusura della stringa o se è un baco... penserei alla prima... ma non ce ne vado fuori...