vb2008匹配html标签之间的文本

时间:2011-04-16 15:38:45

标签: vb.net

你好我使用Visual Basic 2008 Express Edition

如何在标签之间匹配文字?

例如我有一个字符串:<data>Text</data>more text...,我如何获得位于Text内的<data></data> .Replace 赢了&#t; t help )。

感谢

我的解决方案:

    Public Function parseText(ByVal str As String, ByVal tag As String) As String
        Dim match As Match = Regex.Match(str, "<" & tag & "\b[^>]*>(.*?)</" & tag & ">")
        If match.Groups.Count = 2 Then
            Return match.Groups(1).Value
        Else
            Return "0"
        End If
    End Function

我使用这个是因为在我的情况下,标签总是没有id, class, width, href, src, style ....标签名称(ex:<data><str><text>...

3 个答案:

答案 0 :(得分:1)

使用HTML Agility Pack解析HTML字符串,然后在结果对象中查询所需的值。

源代码下载包含许多示例项目。

答案 1 :(得分:1)

您可以使用RegularExpressions。

    Dim s As String = "<data>Hello world</data>"
    Dim match As Match = Regex.Match(s, "<data\b[^>]*>(.*?)</data>")

    Dim text As String

    If match.Groups.Count = 2 Then
        text = match.Groups(1).Value
    End If

答案 2 :(得分:0)

这可能对您有所帮助

Dim findtext2 As String = "(?<=<data>)(.*?)(?=</data>)"
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个字符串之间的所有信息,在本例中为<data></data>。你可以使用你想要的任何东西(它不需要标记,甚至不需要标记)。