Avatar billede mishrah Nybegynder
07. januar 2011 - 22:00 Der er 2 kommentarer og
1 løsning

Regex eller anden metode til at få værdier fra en streng

Hej gutter,

Jeg har en streng der indeholder noget html - fx nedenstående:

<h1>En overskrift</h1>
<table>
<tr><td>
<span class="minKlasse">Værdi 1</span>
</td></tr>
<tr><td>
<span class="minAndenKlasse">Værdi 2</span>
</td><tr>
</table>

og jeg vil gerne have fat i "Værdi 1" som er indeholdet af den her span. Jeg kunne godt Splitte strengen op en masse gange, til jeg til sidst stod med min værdi tilbage, men det er lidt en klodset tilgang.
Istedet mistænker jeg RegEx for at være den "rigtige" måde at parse denne streng på.

Derfor søger jeg en eksempel der kan parse denne streng i ASP og returnere "Værdi 1". Hvis det er lavet som en funktion efter denne syntax, vil det være helt perfekt:

MinVaerdi = FindVaerdi(Str,StartTag,SlutTag)

Str = Strengen der skal parses.
StartTag = Det der står til venstre for den værdi man er ude efter - i dette tilfælde: <span class="minKlasse">
SlutTag = Førstkomne tag der afslutter søgningen - i dette tilfælde: </span>

Jeg håber det giver mening :)
På forhånd rigtig mange tak for hjælpen,

Med venlig hilsen
Martin
Avatar billede arne_v Ekspert
07. januar 2011 - 23:55 #1
Forslag:

Function FindVaerdi(Str,StartTag,SlutTag)
    Set re = New RegExp
    re.Pattern = "(?:" & StartTag & ")(.*?)(" & SlutTag & ")"
    re.Global = True
    Set mm = re.Execute(s)
    Set m = mm.Item(0)
    FindVaerdi = m.SubMatches(0)
    Set m = Nothing
    Set mm = Nothing
    Set re = Nothing
End Function
Avatar billede mishrah Nybegynder
16. februar 2011 - 10:07 #2
Det giver desværre en timeout hver gang strengen jeg prøver at parse er for stor - læs: hvis jeg prøver at parse en af mine websider, så fejler den, men hvis jeg prøver at parse "Dette er en test streng <span class=""minKlasse"">Værdi 1</span>" så virker det..

Jeg endte derfor med at bruge InStr() og Mid() til det istedet.
Jeg vil dog gerne give dig point for dit svar Arne, for det virker jo som sådan :)
Avatar billede arne_v Ekspert
17. februar 2011 - 03:07 #3
svar
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