Pergunta

Eu preciso classificar uma string html para obter o conteúdo de que preciso. Agora eu preciso dar um loop pelas linhas da tabela em uma tabela que possui um ID. Como faço isso com um regex?

Foi útil?

Solução

Expressões regulares não podem ser usadas para analisar HTML; HTML não é regular. Use uma biblioteca de analisador HTML adequada.

Outras dicas

Depende de quão regular é o texto HTML. Por exemplo, dada esta tabela:

<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>

A expressão regex a seguir encontra os IDs na primeira coluna:

(?<=<tr><td>).*?(?=</td>)

Se você executar a página através de um html-parser como o BeautifulSoup, poderá pretificá-la para que esse tipo de regex tenha uma chance. Mas se você está analisando o HTML de qualquer maneira ...

Tente isso

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top