Servus,
ich versuche gerade aus einer Textdatei u.a. einen verschachtelten Div-Container auszulesen.
Der Beispieltext:
Spoiler anzeigen
Dabei hab ich ein MatchCollection für und einmal ein MatchCollection für
soweit so gut. jetzt habe ich aber das Problem, das bei div class= "right" noch ein div-container ist:
Spoiler anzeigen
wenn ich nun mein Regex um <>="_ erweitere, spuckt er mir den kompletten oberen Text als einzigen Match aus:
was ich nicht verstehe, ich frage ja mit den Pattern bis </div> ab. Ich denke, das problem liegt hier, das wenn man das Pattern anschaut, sich hierbei auch der String </div> ergibt und er es somit gar nicht wahrnimmt.
ich versuche gerade aus einer Textdatei u.a. einen verschachtelten Div-Container auszulesen.
Der Beispieltext:
></div></div>
<div class="single_article"><h1 class="article_details_h2">Systemanforderung</h1><div class="feature_group"><div>
<div class="left">Kompatible Betriebssysteme</div><div class="right">Windows 98SE/ME/2000/XP/2003/Vista/7 Mac OS 10.4</div></div></div>
</div><div class="single_article"><h1 class="article_details_h2">Anschlüsse und Schnittstellen</h1><div class="feature_group">
<div><div class="left">Anzahl Anschlüsse</div><div class="right">13</div></div><div>
<div class="left">Hub-Schnittstellen</div><div class="right">USB 2.0</div></div><div>
<div class="left">Anzahl USB 2.0 Anschlüsse</div><div class="right">13</div>
<div class="left">DC-Anschluss</div><div class="right"><div class="icon_button_ok"></div></div></div></div></div>
<div class="single_article"><h1 class="article_details_h2">Verpackungsdaten</h1><div class="feature_group"><div>
<div class="left">Verpackungsbreite</div><div class="right">143 mm</div></div><div>
<div class="left">Verpackungstiefe</div><div class="right">230 mm</div></div><div>
<div class="left">Verpackungshöhe</div><div class="right">70 mm</div></div><div>
<div class="left">Paketgewicht</div><div class="right">290 g</div></div></div></div>
<div class="left">Datenübertragungsrate</div><div class="right">480 Mbit/s</div></div><div>
<div class="left">Produktfarbe</div><div class="right">Schwarz</div></div><div>
<div class="left">LED-Anzeigen</div><div class="right">Status</div></div><div>
<div class="left">Kabellänge</div><div class="right">0,75 m</div></div><div>
<div class="left">Plug &;amp; Play</div><div class="right"><div class="icon_button_ok"></div></div></div><div>
<div class="left">Zertifizierung</div><div class="right">CE, RoHS</div></div></div></div><div class="single_article"><h1 class="article_details_h2">Lieferumfang</h1><div class="feature_group"><div>
<div class="left">AC-Netzadapter</div><div class="right"><div class="icon_button_ok"></div></div></div></div></div><div class="single_article"><h1 class="article_details_h2">Sonstige Funktionen</h1><div class="feature_group"><div>
<div class="left">Mac-Kompatibilität</div><div class="right"><div class="icon_button_ok"></div></div></div><div>
<div class="left">MAC-Adressentabelle</div><div class="right">127 Eintragungen</div></div></div></div></div>
<div class="single_article"><h1 class="article_details_h2">Systemanforderung</h1><div class="feature_group"><div>
<div class="left">Kompatible Betriebssysteme</div><div class="right">Windows 98SE/ME/2000/XP/2003/Vista/7 Mac OS 10.4</div></div></div>
</div><div class="single_article"><h1 class="article_details_h2">Anschlüsse und Schnittstellen</h1><div class="feature_group">
<div><div class="left">Anzahl Anschlüsse</div><div class="right">13</div></div><div>
<div class="left">Hub-Schnittstellen</div><div class="right">USB 2.0</div></div><div>
<div class="left">Anzahl USB 2.0 Anschlüsse</div><div class="right">13</div>
<div class="left">DC-Anschluss</div><div class="right"><div class="icon_button_ok"></div></div></div></div></div>
<div class="single_article"><h1 class="article_details_h2">Verpackungsdaten</h1><div class="feature_group"><div>
<div class="left">Verpackungsbreite</div><div class="right">143 mm</div></div><div>
<div class="left">Verpackungstiefe</div><div class="right">230 mm</div></div><div>
<div class="left">Verpackungshöhe</div><div class="right">70 mm</div></div><div>
<div class="left">Paketgewicht</div><div class="right">290 g</div></div></div></div>
<div class="left">Datenübertragungsrate</div><div class="right">480 Mbit/s</div></div><div>
<div class="left">Produktfarbe</div><div class="right">Schwarz</div></div><div>
<div class="left">LED-Anzeigen</div><div class="right">Status</div></div><div>
<div class="left">Kabellänge</div><div class="right">0,75 m</div></div><div>
<div class="left">Plug &;amp; Play</div><div class="right"><div class="icon_button_ok"></div></div></div><div>
<div class="left">Zertifizierung</div><div class="right">CE, RoHS</div></div></div></div><div class="single_article"><h1 class="article_details_h2">Lieferumfang</h1><div class="feature_group"><div>
<div class="left">AC-Netzadapter</div><div class="right"><div class="icon_button_ok"></div></div></div></div></div><div class="single_article"><h1 class="article_details_h2">Sonstige Funktionen</h1><div class="feature_group"><div>
<div class="left">Mac-Kompatibilität</div><div class="right"><div class="icon_button_ok"></div></div></div><div>
<div class="left">MAC-Adressentabelle</div><div class="right">127 Eintragungen</div></div></div></div></div>
Dabei hab ich ein MatchCollection für und einmal ein MatchCollection für
soweit so gut. jetzt habe ich aber das Problem, das bei div class= "right" noch ein div-container ist:
<div class="left">Mac-Kompatibilität</div><div class="right"><div class="icon_button_ok">
wenn ich nun mein Regex um <>="_ erweitere, spuckt er mir den kompletten oberen Text als einzigen Match aus:
VB.NET-Quellcode
- Dim RegExLeft As RegularExpressions.MatchCollection
- Dim RegExRight As RegularExpressions.MatchCollection
- Dim RegEx As RegularExpressions.Regex
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- ReadData()
- End Sub
- Sub ReadData()
- Dim txt As String = Translate(System.IO.File.ReadAllText("B:\JSON- Daten\100008.json"))
- txt = txt.Substring(txt.IndexOf("productFeatures"), txt.IndexOf("addToCartLink") - txt.IndexOf("productFeatures") - 3)
- Dim LeftAndRight As String = ""
- RegExLeft = RegularExpressions.Regex.Matches(txt, "<div class=" & Chr(34) & "left" & Chr(34) & ">[\w\s" & Chr(34) & "\=<>_\-/,\.äöüÄÖÜ&]+</div>")
- RegExRight = RegularExpressions.Regex.Matches(txt, "<div class=" & Chr(34) & "right" & Chr(34) & ">[\w\s" & Chr(34) & "\=<>_\-/,\.äöüÄÖÜ&]+</div>")
- For i As Integer = 0 To RegExLeft.Count - 1
- LeftAndRight &= RegExLeft(i).Value & ":" & RegExRight(i).Value & ";"
- Next
- TextBox1.Text = LeftAndRight
was ich nicht verstehe, ich frage ja mit den Pattern bis </div> ab. Ich denke, das problem liegt hier, das wenn man das Pattern anschaut, sich hierbei auch der String </div> ergibt und er es somit gar nicht wahrnimmt.