Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 15:58

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[VB.Net] RegEx Problem (Quellcode, Zeilenumbruch)

Discussion on [VB.Net] RegEx Problem (Quellcode, Zeilenumbruch) within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
maxasoft's Avatar
 
elite*gold: 2049
The Black Market: 350/0/0
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
[VB.Net] RegEx Problem (Quellcode, Zeilenumbruch)

Hab hier nen kleinen Bot geschrieben, welcher nun einen Wert im Quelltext einer Seite auslesen soll.

Folgenden Teil brauch ich:

Code:
Es erfordert viel Disziplin und Ausdauer eine Kampfkunst zu erlernen. </span></a></span></a><br />
                    Erhöht ATT um 1<br />
                    Nächste Stufe: &euro;5,00<br />
                    Dauer:  0:11:40
Wie finde ich dieses Stück per Regex?

ich habe es bereits so probiert:

Code:
Try
            Dim r As New Regex("Es erfordert viel Disziplin und Ausdauer eine Kampfkunst zu erlernen. </span></a></span></a><br />            Erhöht ATT um 1<br />            Nächste Stufe: &.*?>")
            Dim matches As MatchCollection = r.Matches(RichTextBox1.Text)
            For Each Match As Match In matches
                MsgBox(Match.Value)
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
Leider erzielte diese Suche keine Treffer.

Würde mich über schnelle Hilfe freuen, Danke im Vorraus :-)
maxasoft is offline  
Old 04/29/2013, 19:06   #2
 
'Heaven.'s Avatar
 
elite*gold: 1
The Black Market: 331/0/0
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
Poste mal den ganzen Quellcode
'Heaven. is offline  
Old 04/29/2013, 20:03   #3
 
maxasoft's Avatar
 
elite*gold: 2049
The Black Market: 350/0/0
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
Quote:
Originally Posted by 'Heaven. View Post
Poste mal den ganzen Quellcode
maxasoft is offline  
Old 04/29/2013, 20:12   #4
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Muss dein Bot viel und oft auslesen? Dann schau dir mal einen richigen Parser an und binde den mit ein. Das ist nicht nur leichter, sondern auch viel flexibler.



Gruß
Schlüsselbein is offline  
Old 04/29/2013, 22:50   #5
 
'Heaven.'s Avatar
 
elite*gold: 1
The Black Market: 331/0/0
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
OMG, nutz den code und den spoiler tag, für sowas bekommt man eig ne warning
'Heaven. is offline  
Old 04/29/2013, 23:22   #6
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
@Te du musst bedenken das nicht immer regex einfach zum ziel führt, manchmal ist es auch eine kombination von splits oder von beidem.
Sicherlich kann man für alles gesuchte ein entsprechenden regex ausdruck finden jedoch macht der aufwand nicht immer sinn
tolio is offline  
Old 04/30/2013, 11:03   #7
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208


Das fand ich ganz nett für sowas.

Ansonsten was Tolio schon sagte
Splitte das Ding in kleinere Teile auf, schon allein damit du dir graue Haare ersparst beim Fehlersuchen
dready is offline  
Old 04/30/2013, 12:13   #8
 
'Heaven.'s Avatar
 
elite*gold: 1
The Black Market: 331/0/0
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
PHP Code:
    Dim str As String IO.File.ReadAllText("C:\Users\Heaven\Desktop\test.htm")

        
Dim iPos As IntegeriEnd As Integer
        Dim strResult 
As String
        strResult 
String.Empty
        
iPos str.IndexOf("<td><img src=" Chr(34) & "http://static.pennergame.de/img/pv4/icons/attack.jpg" Chr(34) & "/></td>"1)
        
iEnd str.IndexOf("</td>"iPos 74)
        If 
iPos <> -1 AndAlso iEnd <> -1 Then
            strResult 
str.Substring(iPos 74iEnd - (iPos 74))
        
End If
        
MsgBox((strResult.Split(">")(11) & vbNewLine strResult.Split(">")(12) & vbNewLine strResult.Split(">")(13)).Replace("<br /""")) 
str ist dein Quellcode und die msgbox gibt dir deine werte aus
'Heaven. is offline  
Old 04/30/2013, 14:16   #9
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,810
PHP Code:
Dim ergebnis As String html.Substring(html.IndexOf("Es erfordert viel Disziplin und Ausdauer eine Kampfkunst zu erlernen.")).Split({"</td>"}, StringSplitOptions.None)(0).Replace("</a>""").Replace("</span>""").Replace("<br />""").Trim() 
Keine Ahnung, wieso ihr immer versuchen wollt RegEx zu benutzen, wenn ihr das eh net kapiert und danach hier im Forum um Hilfe bittet. Gibt doch genug andere Möglichkeiten, die viel simpler sind und genauso gut funktionieren.
Kraizy​ is offline  
Thanks
3 Users
Old 04/30/2013, 17:58   #10
 
maxasoft's Avatar
 
elite*gold: 2049
The Black Market: 350/0/0
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
Quote:
Originally Posted by Kraizy​ View Post
PHP Code:
Dim ergebnis As String html.Substring(html.IndexOf("Es erfordert viel Disziplin und Ausdauer eine Kampfkunst zu erlernen.")).Split({"</td>"}, StringSplitOptions.None)(0).Replace("</a>""").Replace("</span>""").Replace("<br />""").Trim() 
Keine Ahnung, wieso ihr immer versuchen wollt RegEx zu benutzen, wenn ihr das eh net kapiert und danach hier im Forum um Hilfe bittet. Gibt doch genug andere Möglichkeiten, die viel simpler sind und genauso gut funktionieren.
Danke, klappt perfekt :-)

Allerdings interessiert es mich immernoch, wie ich in RegEx über die Zeilensprünge hinweg suchen kann, hat da jemand ne Lösung?

Und muss ich mit VbCrlf arbeiten oder geht das ohne?
maxasoft is offline  
Old 05/01/2013, 02:08   #11


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,221
Received Thanks: 6,758
Für Zeilenumbrüche in Texten: \n - \r\n

Probier's doch einfach mal damit, bin mir nicht sicher ob es in Visual Basic genauso ist, aber in C# ist es aufjedenfall so ;-)
#SoNiice is offline  
Old 05/01/2013, 11:22   #12
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
ja im regex auch in vb \r\n
tolio is offline  
Old 05/01/2013, 11:57   #13
 
maxasoft's Avatar
 
elite*gold: 2049
The Black Market: 350/0/0
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
Hm ok ich werde es mal testen. Aber nochmal zu der methode, die Kraizy mir nahegebracht hat, wenn ich dann den Rest per Replace entferne, sodass ich nurnoch die Zeit habe, bleiben die Leerzeichen & Zeilenumbrüche im String immernoch bestehen, also so:

Code:
  
  
  
0:12:34
Ich habs bereits so versucht:

Code:
Dim ergebnis As String = html.Substring(html.IndexOf("Es erfordert viel Disziplin und Ausdauer eine Kampfkunst zu erlernen.")).Split({"</td>"}, StringSplitOptions.None)(0).Replace("</a>", "").Replace("</span>", "").Replace("<br />", "").Trim()
            ergebnis = ergebnis.Replace("Es erfordert viel Disziplin und Ausdauer eine Kampfkunst zu erlernen.", "")
            ergebnis = ergebnis.Replace("Nächste Stufe: &euro;5,00", "")
            ergebnis = ergebnis.Replace("Dauer:  ", "")
            ergebnis = ergebnis.Replace("Erhöht ATT um 1", "")
            ergebnis = ergebnis.Replace(" ", "")
            ergebnis = ergebnis.Replace(vbCr, "")
            ergebnis = ergebnis.Replace(vbCrLf, "")
maxasoft is offline  
Old 05/01/2013, 12:20   #14
 
Kraizy​'s Avatar
 
elite*gold: 0
The Black Market: 471/0/0
Join Date: Apr 2010
Posts: 9,696
Received Thanks: 1,810
Du musst doch nur bei jeder neuen Zeile splitten
PHP Code:
Dim s1 As String ergebnis.Split(CChar(vbNewLine))(0//Es erfordert...
Dim s2 As String ergebnis.Split(CChar(vbNewLine))(1//Erhöht ATT um 1
Dim s3 As String ergebnis.Split(CChar(vbNewLine))(2//Nächste Stufe
Dim s4 As String ergebnis.Split(CChar(vbNewLine))(3//Dauer 
Kraizy​ is offline  
Thanks
1 User
Old 05/01/2013, 12:23   #15
 
maxasoft's Avatar
 
elite*gold: 2049
The Black Market: 350/0/0
Join Date: May 2012
Posts: 4,593
Received Thanks: 441
Vielen Dank, aber was bewirkt dieses splitten genau?
maxasoft is offline  
Reply


Similar Threads Similar Threads
[RegEx] Regular Expression Problem
02/23/2013 - General Coding - 5 Replies
ERLEDIGT! Aloha zusammen, habe ein kleines Problem mit RegEx. Habe mich bisher leider wenig damit beschäftigt.. Nun weiß ich auch warum... vll kann mir einer von euch helfen... Hier mal zum Aufbau: Quelauszug der durchsucht werden muss:
[Regex] Problem mit Pattern
02/12/2013 - .NET Languages - 9 Replies
Hallo meine lieben, habe folgende zwei Probleme Dort möchte ich per Regex den Namen : johann.goldbaum Dieser ändert sich natürlich also .* ? Pattern:Dim ra As New Regex("<a class=""fbxWelcomeBoxBlock _8o _8s lfloat"" href=""http:\/\/www.facebook.com\/(?< name>(+))") Funktioniert nicht.
Kleines Problem mit RegEx
09/16/2012 - .NET Languages - 4 Replies
Hey Leute ich habe folgenden Code: System.Text.RegularExpressions.Regex(RichTextBox1. Text, "Ha.*s", RegexOptions.IgnoreCase) Die Fehlermeldung lautet jetzt: "Regex ist ein Typ in RegularExpressions und kann nicht als Ausdruck verwendet werden." Könnt ihr mir mal helfen? Ich glaub ich steh grade voll auf dem Schlauch...
[C#]RegEx Problem
11/29/2011 - .NET Languages - 4 Replies
Also ich habe ein Problem, hab ein Patter erstellt: rf_token: '(\w.*)' Nach RegexBuddy gibt es 2 Machtes und in der zweitem Match ist richtige Wert. Aber mit diesem Code bekomme ich Wert nicht wieso wo ist Fehler? string re1 = "rf_token: '(\\w.*)'"; // Variable Name 1 Regex r = new Regex(re1, RegexOptions.IgnoreCase | RegexOptions.Singleline); Match m = r.Match(Winhttp.Body); String var1 = m.Groups.ToString();
[C#] Problem mit Regex
07/11/2010 - .NET Languages - 2 Replies
Huhu, Ich hab da ein kleines Problem was ich irgendwie nicht schaffe zu lösen.. Also ich hab folgenden Source: public List<string> GetHtmlLinks(string html) { string linkPattern = "<a href=\"(.*?)\">(.*?)</a>"; MatchCollection linkMatches = Regex.Matches(html, linkPattern, RegexOptions.Singleline);



All times are GMT +2. The time now is 15:58.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.