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: €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 :-)
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.
@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
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.
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?
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: €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, "")
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
[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);