Wie erhalte ich Inhalte aus einer Tabelle der ID mit einer Regex?
-
21-09-2019 - |
Frage
Ich brauche eine HTML-Zeichenfolge zu sortieren, damit ich den Inhalt ich brauche zu bekommen. Jetzt brauche ich eine Schleife durch die Tabellenzeilen in einer Tabelle, die eine ID hat. Wie mache ich das mit einem regex?
Lösung
Reguläre Ausdrücke können nicht zu parsen HTML verwendet werden; HTML ist nicht regulär. Verwenden Sie eine richtige HTML-Parser-Bibliothek.
Andere Tipps
Es hängt davon ab, wie regelmäßig der HTML-Text ist. Zum Beispiel dieser Tabelle angegeben:
<table>
<tr><td>1</td><td>Apple</td></tr>
<tr><td>2</td><td>Ball</td></tr>
<tr><td>3</td><td>Cookie</td></tr>
<table>
Der folgende reguläre Ausdruck findet den IDs in der ersten Spalte:
(?<=<tr><td>).*?(?=</td>)
Wenn Sie die Seite über einen HTML-Parser wie BeautifulSoup laufen, dann können Sie es prettify so dass diese Art von Regex eine Chance hat. Aber wenn Sie die HTML sowieso parsen ...
Versuchen Sie diese
Dim HTML As String = contentText
Dim options As RegexOptions = RegexOptions.IgnoreCase Or RegexOptions.Singleline
Dim regex As Regex = New Regex("<table[^>]*>(.*)</table>", options)
Dim match As MatchCollection = regex.Matches(HTML)
Dim sb As StringBuilder = New StringBuilder
For Each items As Match In match
sb.Append(items.ToString & vbLf)
Next
TextBox.Text = sb.ToString