【发布时间】:2011-01-06 07:21:09
【问题描述】:
我需要对一个 html 字符串进行排序,以便获得所需的内容。现在我需要遍历具有 ID 的表中的表行。如何使用正则表达式做到这一点?
【问题讨论】:
标签: regex html-table html-content-extraction
我需要对一个 html 字符串进行排序,以便获得所需的内容。现在我需要遍历具有 ID 的表中的表行。如何使用正则表达式做到这一点?
【问题讨论】:
标签: regex html-table html-content-extraction
正则表达式不能用于解析 HTML; HTML 不规则。使用适当的 HTML 解析器库。
【讨论】:
这取决于 HTML 文本的规则性。例如,给定这张表:
<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>
以下正则表达式查找第一列中的 ID:
(?<=<tr><td>).*?(?=</td>)
【讨论】:
如果您通过像 BeautifulSoup 这样的 html 解析器运行页面,那么您可以美化它,以便这种正则表达式有机会。但是如果你仍然在解析 html...
【讨论】:
试试这个
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
【讨论】: