RegEx in HTML-Quelltext

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von hamog.

    RegEx in HTML-Quelltext

    Hi,

    ich bin gerade dabei ein Programm zu pogrammieren,
    welches von einer Internetseite Daten auslesen soll.
    Wie man den Quelltext herunterlädt weiß ich schon, allerdings gibt es ein Problem bei den Regular Expressions.
    Als Ergebnis kommt immer gar nichts heraus und ich blicke auch absolut nicht dadurch.

    Die Stelle, die ich damit "filtern" moechte sieht wie folgt aus :
    <div class="si_map_header" id="HTML_curr_map">
    ut4_uptown
    </div>


    Als Ergebnis soll dann ut4_uptown rauskommen.
    So habe ich es versucht :

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Init("http://www.gametracker.com/server_info/188.40.128.151:60000/")
    3. End Sub
    4. Private Sub Init(ByVal URL As String)
    5. Dim wb As New WebClient
    6. Dim Html As String = wb.DownloadString(URL)
    7. Dim HtmlRegEx As New Regex("<div class=""si_map_header"" id=""HTML_curr_map"">(?<CurrentMap>(.*))</div>")
    8. Dim Map As String = HtmlRegEx.Match(Html).Groups("CurrentMap").ToString
    9. Label1.Text = Map
    10. End Sub


    Ich hoffe ihr versteht, was ich meine...
    Falls ihr eine andere Art kennt, wie man das realisieren koennte, faende ich es toll,wenn ihr sie postet.

    Gruß, Trudi
    :)
    Habe es nun so versucht :

    VB.NET-Quellcode

    1. Dim HtmlRegEx As New Regex("<div class=""si_map_header"" id=""HTML_curr_map"">(\s*?<CurrentMap>(.*)\s*)</div>")


    Es sind ja zwei neue Zeilen (am Anfang und am Ende)
    Hat aber leider immer noch nicht funktioniert ...

    Gruß, Trudi

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trudi“ ()

    Hab das Problem mit folgender Funktion fast geloest :

    VB.NET-Quellcode

    1. Private Function SearchInHtml(ByVal html As String, ByVal Before As String, ByVal After As String)
    2. Dim start As Integer
    3. Dim ende As Integer
    4. Dim laenge As Integer
    5. Dim wort As String
    6. Dim StrB_Word As New StringBuilder
    7. start = html.LastIndexOf(Before)
    8. ende = html.IndexOf(After, start)
    9. laenge = ende - start
    10. For i = Before.Length To laenge
    11. StrB_Word.Append(html(i + start))
    12. Next
    13. wort = StrB_Word.ToString
    14. Trim(wort)
    15. Return wort
    16. End Function


    Allerdings kommt als ergebnis immer

    ut4_wootjumps_v4
    <


    trotz dem

    VB.NET-Quellcode

    1. Trim(wort)


    Ich verstehe nicht wieso noch Leerzeichen davor sind ...


    Gruß, Trudi :)

    EDIT: hier noch ein Bild : Klick mich