我正试图通过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 *,但它没有返回任何内容......
答案 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>
。你可以使用你想要的任何东西(它不需要标记,甚至不需要标记)。