正则表达式,2 html标签之间的一切vb.net

时间:2012-02-17 15:30:54

标签: vb.net

我正试图通过Visual Basic 2010上的正则表达式获取网页的一些信息

它是这样的:

<SPAN CLASS="clear"></SPAN>
<h2> blabla </h2>
<h2> blabla </h2>
<b> blabla </b>

etc etc

<SPAN CLASS="clear"></SPAN>

我想要的是2之间的一切 还有h2标签和存在的所有其他html标签。

这可能吗?

我已经尝试过(。?)和。和\ w *,但它没有返回任何内容......

2 个答案:

答案 0 :(得分:4)

最好使用XML解析器,但我认为这是一次性的或类似的。

如果我理解正确,这应该得到标签之间的所有数据:

Dim regex As New Text.RegularExpressions.Regex("<.*?>", RegexOptions.Singleline)
Dim result As String = regex.Replace(yourHtml, String.Empty)

您可以使用它来获取H2标签和数据:

Dim regex As New Text.RegularExpressions.Regex("<\s*h2[^>]*>(.*?)<\s*/\s*h2>", RegexOptions.Singleline)
Dim results As New Text.StringBuilder
For Each m As Text.RegularExpressions.Match In regex.Matches(yourHtml)
    results.Append(m.Value)
Next

答案 1 :(得分:0)

alundy 已经有了很好的答案,但你也可以试试这个。

Dim findtext2 As String = "(?<=<h2>)(.*?)(?=</h2>)"
Dim myregex2 As String = TextBox1.Text 'Your HTML code
Dim doregex2 As MatchCollection = Regex.Matches(myregex2, findtext2)
Dim matches2 As String = ""
For Each match2 As Match In doregex2
    matches2 = matches2 + match2.ToString + Environment.NewLine
Next
MsgBox(matches2) 'Results

别忘了Imports System.Text.RegularExpressions

以上代码获取2个字符串之间的所有信息,在本例中为<h2></h2>。你可以使用你想要的任何东西(它不需要标记,甚至不需要标记)。