Min metode er naturligvis også kun anvendelig hvis din streng altid ender på \testXXXX hvor XXXX er et vilkårligt antal tal. Hvis du har behov for et mere dynamisk match, så skal du over i Regular Expressions. Dette kunne muligvis bruges:
dim rx set rx = new RegEx rx.pattern = "\d+$" if rx.test(s) then lastchars = rx.match(s)(0) else lastchars = "" end if
Jeg er noget usikker på syntaksen af RegEx-objektet, men selve regex-strengen burde fungere...
Følgende er testet og finder i det mindste tallet i slutningen af din streng (og der er ikke noget krav om at slutningen af strengen skal have bestemt format):
st = "www\erty\http:\\testigen\hoyt6\test322" set rx = new RegExp rx.Pattern = "\d+$" set ms = rx.Execute(st) lastNumbers = ms(0)
rx.Execute returnerer et array af match for din søgning, så du kan gennemløbe den med for each, hvis din expression lægger op til flere resultater. Det er dog ikke umiddelbart tilfældet med den specifikke expression, så derfor har jeg blot indekseret til det første resultat i det array...
Det er nok en god idé at teste på ms.Count > 0 inden du aflæser ms(0), da du vil opleve en fejl, hvis det ikke er et tal der afslutter strengen.
st = "www\erty\http:\\testigen\hoyt6\test322" set rx = new RegExp rx.Pattern = "\d+$" set ms = rx.Execute(st) if ms.Count > 0 then lastNumbers = ms(0) else lastNumbers = "" end if
Det faktum at der findes en egenskab på ms som hedder Count, vidner så om at det nok ikke er et array, men snarere en collection eller et dictionary objekt... :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.