Como obtenho conteúdo de uma tabela usando seu ID com um regex?
-
21-09-2019 - |
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?
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