Avatar billede pjen2004 Nybegynder
05. august 2007 - 12:05 Der er 4 kommentarer og
1 løsning

RegExp (test for tal eller tal+bogst, men EJ bogstaver alene)

Hej!

Jeg har en række strings fra en database, som jeg gerne vil teste karakterne af.

Følgende er lovligt:
Tal+bogstaver (f.eks. 125ab)
Tal alene (f.eks. 1299)
men IKKE bogstaver alene (f.eks. adbvsa)

Jeg kan ikke lige gennemskue, hvordan det gøres med RegExp - noget i stil med:

      TESTSTRENG = rs("NR")
      Dim re
        Set re = New RegExp
        re.IgnoreCase = True
        re.Pattern = "[?????????]"

        If re.Test(TESTSTRENG) Then
          MsgBox "OK"
        Else
          MsgBox "EJ OK"
        End If

På forhånd tak :-) !
Avatar billede nielle Nybegynder
05. august 2007 - 18:37 #1
Sådan?

^\d+[a-zæøå]*$
Avatar billede pjen2004 Nybegynder
06. august 2007 - 08:36 #2
Hej

Det ser ud til at virke..! Tak for det, send et svar så får du points.
Avatar billede nielle Nybegynder
06. august 2007 - 08:40 #3
Vil du have en forklaring på hvorfor det virker?

og et Svar :^)
Avatar billede pjen2004 Nybegynder
06. august 2007 - 11:23 #4
Ja, det kunne være fint nok at vide hvad ^\d+ betyder? a-zæøå giver sig selv...
Avatar billede nielle Nybegynder
06. august 2007 - 18:36 #5
Mønsteret består af 4 dele (en pr. linje):

^
\d+
[a-zæøå]*
$

(o) ^ og $ er "ankre" som sikre at det der testes mod passer med hhv. starten og slutningen af strengen. Uden f.eks. ^-tegnet ville det også have matchet imod f.eks.:

"noget tekst, og andet #@¤% skrammel, i starten af strengen! 123abc"

(o) \d står for digit, dvs. ciffer på engelsk. \d er i virkeligheden blot en kort form for [0-9].

(o) + står for "et eller flere ...", dvs. \d+ står for "et eller flere cifre". Det er dette led som sikre at du ikke kan få matchet noget *uden* at der er mindst et ciffer til stede.

(o) [a-zæøå] kender du? Læg mærke til at det er ikke 100% sikkert at din re.IgnoreCase = True faktisk sikre at de store versioner af Æ, Ø og Å også kommer med. Hvis de ikke gør det, så skal du udvide til: [a-zæøåÆØÅ].

(o) * står for "nul eller flere ..." (læg mærke til forskellen fra '+' ovenfor). [a-zæøå]* matcher altså "nul eller flere bogstaver".
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester