RegEx Ergebnisse in Listbox eintragen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RaYder04.

    RegEx Ergebnisse in Listbox eintragen

    Hey,
    ich stehe vor einem Problem und weiß nicht weiter ?(

    Mein Ziel:
    In einen Quellcode mit RegEx mehrere Namen aus einer Liste raussuchen. Diese Namen haben alle die gleiche ID.

    quellcode ausschnitt:

    PHP-Quellcode

    1. <td class="col2"><a href="/profil/id:xxxxx/" class="username">Name1</a></td>
    2. <td class="col2"><a href="/profil/id:xxxxx/" class="username">Name2</a></td>
    3. <td class="col2"><a href="/profil/id:xxxxx/" class="username">Name3</a></td>
    4. <td class="col2"><a href="/profil/id:xxxxx/" class="username">Name4</a></td>


    Diese Namen dann in einem Array speichern und in eine Listbox eintragen.

    Bisher habe ich dieses hier (RegEx ist wahrscheinlich falsch...) :

    VB.NET-Quellcode

    1. Sub FindUser(ByVal seite As Integer, ByVal min As Integer, ByVal max As Integer) ' einfach ignorieren :)
    2. Dim httprequest As HttpWebRequest = HttpWebRequest.Create("http://www.pennergame.de/highscore/user/") ' & seite & "/?max=" & min & "&min=" & max & "&name=&district=0&gang=")
    3. Dim httpresponse As HttpWebResponse = httprequest.GetResponse()
    4. Dim reader As StreamReader = New StreamReader(httpresponse.GetResponseStream)
    5. Dim httpcontent As String = reader.ReadToEnd
    6. Dim ipRegEx As New Regex("\<class=\""username\""\>*\<\/a\><\/td\>")
    7. Dim FoundNames As String = ipRegEx.Match(httpcontent).Groups("string").ToString()
    8. MsgBox(FoundNames)
    9. End Sub


    Würd mich freuen, wenn jmd. mir weiterhelfen kann :)
    ps.: ja, es wird ein programm für pennergame, aber nein, es ist nicht illigal...
    edit: man brauch dafür keinen PG-account :)
    du packst das RegEx in eine schleife und für jeden Treffer wird der Listbox ein Item hinzugefügt.
    in eine schleife? dann wird doch immer nur der erste name gefunden oder?
    Wenn RegEx ein Array zurückgibt, dann kannst du das auch mit AddRange einer ListBox zuweisen
    Ich weiß nicht. in AutoIT gabs ein array zurück, war praktisch ;)



    bisher findet er dummerweise noch nichts. meine RegEx - Funktion muss falsch sein.
    ja, das kenne ich auch.
    im quellcode sind "" drin. blöd, da ' als kommentar benutzt wird. hab ich das so richtig gemacht?
    hier ist mal mein code (regex ist aber eher rauskopiert)
    finden tut er nichts.

    VB.NET-Quellcode

    1. Dim httprequest As HttpWebRequest = HttpWebRequest.Create("http://www.pennergame.de/highscore/user/")
    2. Dim httpresponse As HttpWebResponse = httprequest.GetResponse()
    3. Dim reader As StreamReader = New StreamReader(httpresponse.GetResponseStream)
    4. Dim httpcontent As String = reader.ReadToEnd
    5. 'class="username">USERNAME</a></td>
    6. Dim RegExString As String = "\class=\""username\""\>(?<username>(.*))\<\/a\>\<\/td\>"
    7. Dim ipRegEx As New Regex(RegExString)
    8. Dim names As String = ipRegEx.Match(httpcontent).Groups("username").ToString()
    9. MsgBox(names)
    Gut, hab es jetzt so hinbekommen.

    VB.NET-Quellcode

    1. Dim RegExString As String = "username\"">(?<username>(.*))\<\/a\>\<\/td\>"
    2. Dim ipRegEx As New Regex(RegExString)
    3. Dim names As String = ipRegEx.Match(httpcontent).Groups("username").ToString()


    logischerweise wird nur der erste name gefunden. wie kann ich alle namen finden? schleife, array,...?