Hilfe bei regex

10/02/2013 13:58 IXeller#1
Hallo liebe epvp gemeinschaft...

ich bräuchte en bissl hilfe :D

Ich habe ein auto registrationsprogramm.. es soll aber jetzt auch die mails bestätigen... mein problem ist es einen bestimmten link rauszukopieren der via httpwebrequest ausgeführt werden soll...

HTML Code:
<a class="non_underline" title="fdgfdfg" href="?login=fdgf&mail=13779207"></a>
?login=fdgf&mail=13779207 <-- das soll ausgelesen werden... den kompletten quellcode habe ich schon als string

Danke im vorraus
10/02/2013 15:46 stotterer09#2
wenn du es einfach bei "href=" splittest und dann das nochmal bei ">" dann solltest du es doch haben
10/02/2013 15:52 snow#3
Warum nimmst du nicht XPath? Damit dürfte der Searchstring dann //a[@class='non_underline'] sein.

Wurde das hier eigentlich schonmal diskutiert, ob XPath schneller ist als Regex? Würde mich mal interessieren, wann man besser das eine oder das andere verwendet..
10/02/2013 17:08 kissein#4
Quote:
Originally Posted by snow911 View Post
Wurde das hier eigentlich schonmal diskutiert, ob XPath schneller ist als Regex? Würde mich mal interessieren, wann man besser das eine oder das andere verwendet..
Solange es keine Quellcode Suppe (invalides XML) ist würde ich jederzeit xpath gegenüber regex vorziehen. Für alles andere [Only registered and activated users can see links. Click Here To Register...]

//edit: bzgl Performance

Xpath hat mehr Speicher/CPU Last als Regex, speziell wenn man viele Elemente rausparsen will, dafür ist die Handhabung benutzerfreundlicher.
10/02/2013 17:35 IXeller#5
aber es soll ja asu einen kompletten quelltext ausgelesen werden... hätte vielleicht gedacht mit der match funktion

hab nen code ausgearbeitet aber der funzt imemrnoch net

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click


Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://no-spam.ws/?login=546564564")
Dim response As System.Net.HttpWebResponse = request.GetResponse

Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream( ))

Dim rssourcecode As String = sr.ReadToEnd

Dim r As New System.Text.RegularExpressions.Regex("<a title=""gfedgfg"" class=""non_underline"" href=""?login=546564564&mail=""([A-Za-z0-9\-]+)"">gfedgfg</a>$", RegexOptions.IgnoreCase)
Dim matches As MatchCollection = r.Matches(rssourcecode)
For Each itemcode As Match In matches

ListBox7.Items.Add(itemcode.Value.Split("""").GetV alue(6))

Next
End Sub