06. november 2004 - 20:54Der er
9 kommentarer og 1 løsning
Regular Expression
Jeg henter koden ned fra en hjemmeside og vil derefter udskrive nogle udvalgte elementer fra siden, men jeg kan ikke få Regular Expression til at virke i VB6:
Jeg er kommet hertil:
Set regex = New RegExp regex.IgnoreCase = True ' Ikke case sensetiv regex.Global = True ' Søg i hele strengen regex.Pattern = "(.*)(\<title\>)(.+)(\<\/title\>)(.*)" Set regex = Nothing
Men hvis jeg - som jeg ville gøre i ASP - skriver:
titel = regEx.Replace(input, "$2")
Får jeg hele sidens kode undtagen de 2 title tags, hvordan gør jeg så jeg kun får det der står mellem <title> og </title>
Det kan vel også være ligemeget, det virker. Smider du et svar så du kan få point?
Hvis nogen er interesseret, ser hele koden sådan ud:
'Load msinet.ocx 'Lav en Inet1 'Lav en textbox kaldet URL 'Lav en knap kaldet Command1
Function getInfo(Start_Tag As String, End_Tag As String, Page_Source As String) getInfo = Right(Page_Source, Len(Page_Source) - InStr(Page_Source, Start_Tag) - Len(Start_Tag) + 1) getInfo = Left(getInfo, InStr(getInfo, End_Tag) - 1) End Function
Private Sub Command1_Click() On Error Resume Next
Dim txt As String Dim b() As Byte
Command1.Enabled = False
b() = Inet1.OpenURL(URL.Text, 1)
txt = ""
For t = 0 To UBound(b) - 1 txt = txt + Chr(b(t)) Next
"Men hvad er så fordelen at bruge?": Fordelen ved selve at pille data ud, fremfor brugen af RegExp? - Det kan fylde mindre, og jeg vil mene at man normalt bruger RegExp til mere komplicerede ting, som ellers ville kræve mange liniers kode..
Function getInfo(TagName As String, Page_Source As String) Page_Source = Mid(Page_Source, InStr(Page_Source, "<" & TagName)) Page_Source = Mid(Page_Source, InStr(Page_Source, ">") + 1) Page_Source = Left(Page_Source, InStr(Page_Source, "<") - 1) getInfo = Page_Source End Function
Bruges sådan:
Dim strInput As String strInput = "<html><head><title test>Sidens Titel</title HelloWorld></head><body>hello world</body></html>" Text1.Text = getInfo("title", strInput)
- Læg mærke til "<title test>" og "</title HelloWorld>"..
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.