Mathias skrev:
> Jeg har efterhånden fundet ud af, at at bruge "Like"-operatoren er lidt
> ligesom at bruge Regular Expressions. Men kan man skrive f.eks. [a-zA-Z*]
> [0-9*] når man bruger Like-operatoren?
Selvfølgelig kan man skrive det, men du opnår formentlig ikke det, som du
ønsker.
Som det fremgår klart af dokumentationen til Like, betyder "*" zero or more
characters. Du kan ikke angive en klasse af tegn, som * skal matche. Omvendt
kan du, når du angive en klasse, ikke angive at der må være flere end én
forekomst.
Vi må konstatere at Like er ganske fin dér hvor den kan bruges, men set i
forhold til regulære udtryk, er Like udpræget amputeret (der er nærmest kun
lillefingeren tilbage).
Vil man regulære udtryk, må man enten selv i gang med at kode (men det er
nok et stort arbejde, og det performer sikkert ikke særlig godt), eller også
kan man gøre brug af "Microsoft VBScript Regular Expressions X.Y" (X.Y står
for et versionsnummer - jeg har version 1.0 og 5.5 på min PC). Sæt en
reference til denne i Project, References og prøv følgende:
Dim x As RegExp
Set x = New RegExp
x.Pattern = "(a-z)*(0-9)*"
Debug.Print x.Test("abc123")
Vær dog opmærksom på at der i ovenstående mønster testes på forekomster af 0
eller flere a-z'er efterfulgt af 0 eller flere 0-9'er et _vilkårligt_ sted i
strengen "abc123". Angiver man f.eks. "Xabc123X" vil testen stadig give
svaret sandt. Søg selv efter dokumentation på "VBScript Regular Expressions"
hvis du vil arbejde videre ad denne sti.
-------
Tomas
|