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