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?

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top