Avatar billede loukas Mester
18. marts 2003 - 16:25 Der er 5 kommentarer og
1 løsning

Tælle Links

Jeg vil tælle antal links i en .html
og have alle links skrevet ud.

jeg har leget lidt med koden her.
Men det blivet kun til 1 link, selv om der er flere :-(


function LinkURLs(ByRef asContent)
        Dim loRegExp    ' Regular Expression Object (Requires vbScript 5.0 and above)
       
        ' if no content was received, Exit the function
        if asContent = "" Then Exit function
       
        ' Create Regular Expression object
        Set loRegExp = New RegExp
       
        ' Keep finding links after the first one.               
        loRegExp.Global = True
       
        ' Ignore upper/lower Case
        loRegExp.IgnoreCase = True
        ' Look For URLs
        loRegExp.Pattern = "((ht|f)tps?://\S+[/]?[^\.])([\.]?.*)"
        ' Link URLs
        AntalLinks = AntalLinks + 1

       
        ' Release regular expression object
        Set oRegExp = Nothing
       
        Response.Write "AntalLinks:" & AntalLinks
       
    End function
Avatar billede soes Nybegynder
18. marts 2003 - 17:59 #1
Det er fordi at du skal bruge match objectet.
Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches  ' Create variable.
  Set regEx = New RegExp  ' Create regular expression.
  regEx.Pattern = patrn  ' Set pattern.
  regEx.IgnoreCase = True  ' Set case insensitivity.
  regEx.Global = True  ' Set global applicability.
  Set Matches = regEx.Execute(strng)  ' Execute search.
  For Each Match in Matches  ' Iterate Matches collection.
      RetStr = RetStr & "Match " & I & " found at position "
      RetStr = RetStr & Match.FirstIndex & ". Match Value is "'
      RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
End Function

du kan maaske bruge denne side:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsobjmatch.asp
Avatar billede loukas Mester
18. marts 2003 - 19:59 #2
Jeg får desværre en fejl:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EE)
Tegnet ')' var ventet

Det kan være når jeg kalder functionen, altså skal det gøres sådan her ??


sOuts = RegExpTest(a href,sOouts)
Avatar billede soes Nybegynder
18. marts 2003 - 20:27 #3
sOuts = RegExpTest("a href","sOouts")
Avatar billede loukas Mester
18. marts 2003 - 21:49 #4
hmmm, den vil ikke ?!?!
sOuts indeholder en hel html-fil

sOuts = RegExpTest("a href","sOuts")
Response.Write sOuts

Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches  ' Create variable.
  Set regEx = New RegExp  ' Create regular expression.
  regEx.Pattern = patrn  ' Set pattern.
  regEx.IgnoreCase = True  ' Set case insensitivity.
  regEx.Global = True  ' Set global applicability.
  Set Matches = regEx.Execute(strng)  ' Execute search.
  For Each Match in Matches  ' Iterate Matches collection.
      RetStr = RetStr & "Match " & I & " found at position "
      RetStr = RetStr & Match.FirstIndex & ". Match Value is "'
      RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
  Response.Write RetStr
End Function
Avatar billede loukas Mester
18. marts 2003 - 21:51 #5
Er det ikke sådan her ?
sOuts = RegExpTest("REGULÆR UDTRYK HER","sOouts")
Avatar billede soes Nybegynder
19. marts 2003 - 14:36 #6
sOuts = RegExpTest("Det du vil soege efter", sOouts)

da sOouts indeholder HTML filen er det en variabel og skal derfor ikke skrive med " og "
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