|
You last visited: Today at 23:06
Advertisement
RegEx Html-Code filtern Problem
Discussion on RegEx Html-Code filtern Problem within the .NET Languages forum part of the Coders Den category.
10/22/2015, 21:33
|
#1
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
RegEx Html-Code filtern Problem
Hallo,
Ich muss mich leider schon wiedermal an die Epvp Gemeinde in Sachen VB wenden ;D
Da ich HttpWebRequests nun beherrsche hab ich mir nen kleinen Treasure-Creator gebaut. Nun will ich eine Funktion einbauen die immer den Link & ID des ersten Treasure aus der Liste( ) ausließt.
Dazu habe ich RegEx verwendet.
Leider bekomme ich 0 matches. Ich gehe stark davon aus, dass das Problem bei den Zeilenumbrüchen liegt und ich deshalb keine matches bekomme.
Hier mal mein Code:
Code:
Dim regex As New Regex("<td class=""smallfont"" width=""140"">Buyer</td></tr><tr><td><a href=""http://www.elitepvpers.com/theblackmarket/treasure/.*"">#.*</a></td>", RegexOptions.IgnoreCase Or RegexOptions.Multiline Or RegexOptions.Singleline)
Dim matches As MatchCollection = regex.Matches(seitenQuelltext)
'For Each itemcode As Match In matches
' MsgBox(itemcode.Value.Split("""").GetValue(5))
'Next
MsgBox(matches.Count)
Wäre für Hilfe sehr dankbar.
MfG
|
|
|
10/22/2015, 23:11
|
#2
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
1.) Dieser string ist doch viel zu lang bin mir sicher ein kleiner teil davon reicht schon.
2.) Ich kenn mich mit vb nicht aus aber in c# muss man die regex patterns in () packen
3.) Darf ich dich nochmal an meine http klasse in c# erinnern?
Die kann regex^^
4.) VB ist so eine hässliche sprache. sry dafür aber es ist so
Besser einen Html parser verwenden um viele regex zu vermeiden: HtmlAgilityPack
|
|
|
10/23/2015, 00:30
|
#3
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
Quote:
Originally Posted by »FlutterShy™
1.) Dieser string ist doch viel zu lang bin mir sicher ein kleiner teil davon reicht schon.
2.) Ich kenn mich mit vb nicht aus aber in c# muss man die regex patterns in () packen
3.) Darf ich dich nochmal an meine http klasse in c# erinnern?
Die kann regex^^
4.) VB ist so eine hässliche sprache. sry dafür aber es ist so
Besser einen Html parser verwenden um viele regex zu vermeiden: HtmlAgilityPack
|
1.) Meines Wissens nach geht der String leider nicht kürzer da ich immer den obersten Treasure aus der Liste brauche.
Das Problem ist, dass der String in einer neuen Zeile irgendwie aufhört und ich nicht weiß wie man vb sagt das der String trotzdem weitergeht. Der String den ich ausgewählt habe geht nunmal über 3 Zeilen
|
|
|
10/23/2015, 01:08
|
#4
|
Moderator
elite*gold: 558
Join Date: Feb 2010
Posts: 6,544
Received Thanks: 1,424
|
Quote:
Originally Posted by Benjihz
Das Problem ist, dass der String in einer neuen Zeile irgendwie aufhört und ich nicht weiß wie man vb sagt das der String trotzdem weitergeht. Der String den ich ausgewählt habe geht nunmal über 3 Zeilen
|
Ich denke dafür wirst du an den richtigen Stellen einen Zeilenumbruch einfügen müssen. z.B. "\n" / "\r\n"
Die "RegexOptions.Multiline" Einstellung wirkt sich mit Sicherheit nur auf die "dynamischen" Teile des Strings aus und nicht auf den festen Text. z.B. *
Quote:
Originally Posted by »FlutterShy™
14.) VB ist so eine hässliche sprache. sry dafür aber es ist so
|
Da kann ich nur zustimmen.
|
|
|
10/23/2015, 01:35
|
#5
|
elite*gold: 56
Join Date: Oct 2010
Posts: 3,409
Received Thanks: 1,219
|
Bitte bitte nimm doch einen HTML Parser für sowas..
|
|
|
10/23/2015, 01:59
|
#6
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by Benjihz
1.) Meines Wissens nach geht der String leider nicht kürzer da ich immer den obersten Treasure aus der Liste brauche.
Das Problem ist, dass der String in einer neuen Zeile irgendwie aufhört und ich nicht weiß wie man vb sagt das der String trotzdem weitergeht. Der String den ich ausgewählt habe geht nunmal über 3 Zeilen
|
wieso ignorierst du immer die wichtigen punkte? bei 2.) und 3.) ist die lösung.
zu 1.) Doch du kannst alle treasures auslesen und nur den ersten ausgeben
@MrDami123
Hatte ich ja auch schon erwähnt aber du willst damit wohl nicht sagen er soll eine dll includen nur um einen einzigen regex befehl rauszunehmen?
|
|
|
10/23/2015, 11:27
|
#7
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
Quote:
Originally Posted by »FlutterShy™
wieso ignorierst du immer die wichtigen punkte? bei 2.) und 3.) ist die lösung.
zu 1.) Doch du kannst alle treasures auslesen und nur den ersten ausgeben
@MrDami123
Hatte ich ja auch schon erwähnt aber du willst damit wohl nicht sagen er soll eine dll includen nur um einen einzigen regex befehl rauszunehmen?
|
Sorry ist irgendwie eine Angewohnheit, wenn ich nur Bahnhof verstehe ignoriere ich das und such mir irgendeine andere Quelle die ich verstehe. Das Problem dabei ist, dass ich dann meistens 2 Tage den Fehler im Code suchen muss und die ganze Zeit auf was anderes fixiert bin als auf den eigentlichen Fehler.
Habs aber gestern selber noch hinbekommen: SingleLine aktiviert und Zeilenumbruch mit (.*) angegeben.
Das mit dem alle auslesen und nur den ersten ausgeben lassen habe ich auch schon überlegt. Allerdings erschien mir meine Methode um einiges einfacher und außerdem hab ich sie mir überlegt
Danke mal wieder für eure Hilfe
EDIT: Und was genau findet ihr an VB immer so hässlich?
EDIT EDIT:
Quote:
Originally Posted by MrDami123
Bitte bitte nimm doch einen HTML Parser für sowas..
|
Das ist ein Einzeiler auch ohne "externen" Parser. Im Umgang mit RegEx geübt zu sein kann denke ich auch nicht schaden
|
|
|
10/23/2015, 21:07
|
#8
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
hauptsächlich aber wegen der syntax und den komischen my namespace.
Was ist dir da zu kompliziert?
Die string between funktion aus meiner klasse in vb übersetzen lassen und mal schauen obs so geht
|
|
|
10/25/2015, 17:04
|
#9
|
elite*gold: 56
Join Date: Oct 2010
Posts: 3,409
Received Thanks: 1,219
|
Parser: 6min
Leute fragen wie Regex geht: 24h und ggf. immer noch kein Erfolg.
|
|
|
10/25/2015, 17:34
|
#10
|
elite*gold: 100
Join Date: Feb 2012
Posts: 2,341
Received Thanks: 207
|
Quote:
Originally Posted by MrDami123
Parser: 6min
Leute fragen wie Regex geht: 24h und ggf. immer noch kein Erfolg.
|
Und wenn es auch 2 Wochen dauert, lohnt es sich trotzdem den Umgang mit RegEx zu lernen. Um Erfolg zu haben muss man auch was für tun gerade beim programmieren braucht man eine hohe Frustrationstoleranz.
|
|
|
10/25/2015, 20:32
|
#11
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by MrDami123
Leute fragen wie Regex geht: 24h und ggf. immer noch kein Erfolg.
|
als ob regex so schwer ist.....
|
|
|
10/25/2015, 23:47
|
#12
|
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
|
Quote:
Originally Posted by »FlutterShy™
|
Wow, so viel Unsinn auf einer Webseite hab ich schon lange nicht mehr gesehen, hoffentlich ist das nur zur Unterhaltung gedacht.
Quote:
Originally Posted by Benjihz
Und wenn es auch 2 Wochen dauert, lohnt es sich trotzdem den Umgang mit RegEx zu lernen. Um Erfolg zu haben muss man auch was für tun gerade beim programmieren braucht man eine hohe Frustrationstoleranz.
|
Was für einen Sinn soll es haben sich 2 Wochen an einem einzigen Lösungsweg festzubeissen, anstatt nach einem anderen besseren Weg zu suchen?
Zu der RegEx - HTML Sache lasse ich noch einen Link da:
|
|
|
10/26/2015, 03:16
|
#13
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
durchaus nicht falsch der link, aber es geht hier nicht darum ein html dokument per regex zu parsen sondern lediglich eine information zu extrahieren. wenn man regex kann dauert das am ende auch nur 10sec. und damit will ich nicht sagen das der ansatz über einen parser falsch ist, sondern nur das es auch mit regex ohne problem geht wenn man ne ahnung hat was man da macht.
|
|
|
10/26/2015, 08:28
|
#14
|
elite*gold: 56
Join Date: Oct 2010
Posts: 3,409
Received Thanks: 1,219
|
|
|
|
11/03/2015, 16:56
|
#15
|
elite*gold: 0
Join Date: Jul 2015
Posts: 192
Received Thanks: 67
|
Quote:
Originally Posted by MrDami123
|
Quote:
Moderator's Note
This post is locked to prevent inappropriate edits to its content. The post looks exactly as it is supposed to look - there are no problems with its content. Please do not flag it for our attention.
|
Find ich echt ziemlich genial.
@Argumentation: Ich hab jetzt keine Tests gemacht, bin mir aber ziemlich sicher das Regex da performanter ist als sich das ganze DOM runter zu parsen.
|
|
|
|
|
Similar Threads
|
Regex problem / vb.net
01/26/2014 - .NET Languages - 2 Replies
hi, ich möchte von der url "http://www.elitepvpers.com/forum/" den profillink auslesen.
folgenden code habe ich:
("\href=""\(?<string2>(.*))\ ""\/>")
funktioniert aber irgendwie nicht. kann mir vielleicht jemand helfen?
Danke :)
|
[Vb.net] Regex Problem
07/13/2013 - .NET Languages - 0 Replies
hat sich erledigt
|
[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();
|
Tool to aid the creation of RegEx offset finders - AutoIt code included
09/05/2011 - PW Hacks, Bots, Cheats, Exploits - 9 Replies
When I was making my offset finders for my real chat filters tool I got pretty pissed off with having to turn code like this:
CPU Disasm
Address Hex dump Command Comments
00604B30 /. 53 PUSH EBX
00604B31 |. 8B5C24 08 MOV EBX,DWORD PTR SS:
00604B35 |. 56 PUSH ESI
00604B36 |. 8B7424 10 MOV ESI,DWORD PTR SS:
00604B3A |. 57 PUSH EDI
00604B3B |. 56 PUSH ESI ...
|
[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 23:06.
|
|