Avatar billede skildpadden Nybegynder
21. december 2010 - 16:34 Der er 10 kommentarer og
1 løsning

Split af streng

Jeg har en streng som nedenstående:

<a href="/Forms/R0710.aspx?id=63283" target="_blank">Administrativ bistandsloven</a><a href="/Forms/R0710.aspx?id=63283" target="_blank">132</a><a href="/Forms/R0710.aspx?id=63283" target="_blank">26-02-1992</a><a id="ctl00_MainContent_ResultGrid1_ctl02_HyperLink2" href="/Forms/R0710.aspx?id=63283" target="_blank">Lov om gensidig administrativ bistand i sager om direkte og indirekte skatter mellem stater, der er medlem af Europarådet eller OECD</a>


Det jeg mangler er et script som kan fjerne kodedelene, således at jeg får variabler uden kodedele.

F.eks.:

Scriptet fjerner kodedelen og jeg får:

var1 = "Administrativ bistandsloven"
var2 = "132"
var3 = "26-02-1992"
var4 = "Lov om gensidig administrativ bistand i sager om direkte og indirekte skatter mellem stater, der er medlem af Europarådet eller OECD"



Er der en som kan hjælpe mig med det?

Tak på forhånd...
Avatar billede tjens Nybegynder
21. december 2010 - 18:17 #1
VB console application demo:
Imports System.Text.RegularExpressions

Module Module1

    Sub Main()
        Dim streng As String
        Dim pos As Integer
        Dim splitStreng As Array

        streng = "<a href='/Forms/R0710.aspx?id=63283' target='_blank'>Administrativ bistandsloven</a><a href='/Forms/R0710.aspx?id=63283' target='_blank'>132</a><a href='/Forms/R0710.aspx?id=63283' target='_blank'>26-02-1992</a><a id='ctl00_MainContent_ResultGrid1_ctl02_HyperLink2' href='/Forms/R0710.aspx?id=63283' target='_blank'>Lov om gensidig administrativ bistand i sager om direkte og indirekte skatter mellem stater, der er medlem af Europarådet eller OECD</a>"
     
        splitStreng = Regex.Split(streng, "</a>")

        For Each part As String In splitStreng
            pos = part.LastIndexOf(">")
            If (pos > 0) Then
                Console.WriteLine(part.Substring(pos + 1))
            End If
        Next

    End Sub

End Module
Avatar billede supertekst Ekspert
21. december 2010 - 18:18 #2
Rem eksemplet stammer fra regneark
Dim tabel
    tabel = Split(Range("A1"), ">")
    antal = UBound(tabel)
   
    For f = 1 To UBound(tabel) Step 2
        a = Replace(tabel(f), "</a", "")
        MsgBox a
    Next f
Avatar billede Slettet bruger
21. december 2010 - 20:24 #3
Ved du, hvilke variabler / attributter, der kan optræde i strengen
For så kan det jo gøres med blot Javascript, fx ved brug af jQuery.
Avatar billede arne_v Ekspert
25. december 2010 - 04:18 #4
Mit forslag:

<%
s = "<a href=""/Forms/R0710.aspx?id=63283"" target=""_blank"">Administrativ bistandsloven</a><a href=""/Forms/R0710.aspx?id=63283"" target=""_blank"">132</a><a href=""/Forms/R0710.aspx?id=63283"" target=""_blank"">26-02-1992</a><a id=""ctl00_MainContent_ResultGrid1_ctl02_HyperLink2"" href=""/Forms/R0710.aspx?id=63283"" target=""_blank"">Lov om gensidig administrativ bistand i sager om direkte og indirekte skatter mellem stater, der er medlem af Europarådet eller OECD</a>"
Set reo = New RegExp
reo.Pattern = "(?:<[^>]*>)([^<>]*)(?:</[^>]*>)"
reo.Global = True
Set mm = reo.Execute(s)
For Each m in mm
  Response.Write m.SubMatches(0) & "<br>" & vbCrLf
Next
Set mm = Nothing
Set reo = Nothing
%>
Avatar billede sth Novice
03. januar 2011 - 23:00 #5
Hej Arne

Deter godt nok smart, men jeg må indrømme jeg ikke kan forstår koden, hvordan virker den? er det "(?:<[^>]*>)([^<>]*)(?:</[^>]*>)"
der fjerner noget der er i mellem eller hvordan
Avatar billede arne_v Ekspert
04. januar 2011 - 01:45 #6
Der er mange som mener at regex er tæt beslægtede med hiroglyffer!

:-)

(?:  )  skal være der men kommer ikke med i det man hiver ud
(    )  skal være der og kommer med i det man hiver ud
<[^>]*>  en < efterfulgt af 0-mange tegn som ikke er > efterfulgt af en >
[^<>]*    0-mange tegn som ikke er hverken < eller >
</[^>]*>  en < efterfulgt en / efterfulgt af 0-mange tegn som ikke er > efterfulgt af en >
Avatar billede sth Novice
04. januar 2011 - 07:12 #7
Tak for din forklaring, så lærte jeg det
Avatar billede arne_v Ekspert
04. januar 2011 - 21:06 #8
saa smider jeg et svar
Avatar billede skildpadden Nybegynder
04. januar 2011 - 22:07 #9
arne_v: tusind tak for hjælpen... og undskyld at jeg først svarer nu.
Avatar billede skildpadden Nybegynder
18. januar 2011 - 12:13 #10
Hej Arne,

Håber at du vil hjælpe mig lidt igen.

Jeg prøver at splitte denne streng:

<td><a href="/Forms/R0710.aspx?id=63283" target="_blank">Administrativ bistandsloven</a></td><td><a href="/Forms/R0710.aspx?id=63283" target="_blank">132</a></td><td nowrap="nowrap"><a href="/Forms/R0710.aspx?id=63283" target="_blank">26-02-1992</a></td><td><a id="ctl00_MainContent_ResultGrid1_ctl02_HyperLink2" href="/Forms/R0710.aspx?id=63283" target="_blank">Lov om gensidig administrativ bistand i sager om direkte og indirekte skatter mellem stater, der er medlem af Europarådet eller OECD </a></td>



Ud fra dit script oven for prøver jeg med:

    s = streng

    Set reo = New RegExp
    reo.Pattern = "(?:<td[^>]*>)([^<>]*)(?:</td[^>]*>)"
    reo.Global = True
    Set mm = reo.Execute(s)

    For Each m in mm
        Response.Write m.SubMatches(0) & "<br>" & vbCrLf
    Next

    Set mm = Nothing
    Set reo = Nothing


Men jeg får ingenting ud...

Kan du hjælpe mig?

På forhånd 1000 tak.
Avatar billede skildpadden Nybegynder
18. januar 2011 - 14:20 #11
fandt ud af det...
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