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>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.