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

问题描述 投票:3回答:2

我试图通过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 *但它没有返回任何东西......

vb.net
2个回答
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

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>。你可以使用你想要的任何东西(它不需要标记,甚至不是html)。

© www.soinside.com 2019 - 2024. All rights reserved.