搜索复杂的字符串

时间:2014-07-06 10:32:04

标签: vb.net string search

我正在寻找一种搜索这一系列信息的方法。

<a href="CLSID/70545-GoogleToolbar_32_dll.html">Google Side Bar</a></td><td>GoogleToolbar_32.dll</td>

我可以搜索关键字

<td>GoogleToolbar_32.dll</td>

从那里我需要得到短语&#34; CLSID / 70545-GoogleToolbar_32_dll.html&#34;。我的想法是向后搜索以找到下一个发生的&#34; a href&#34;,搜索到结束引号。但我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

如果这是一次性的事情,或者你知道格式是一致的,你可以使用正则表达式。以下示例将按您的要求执行。这不是特别强大,但它适用于您的示例。正则表达式不是您通常用于解析标记语言的。正如Neolisk所说,您可能希望查看解析库。

Imports System.Text.RegularExpressions

Module Module1

   Sub Main()

      Dim html As String = "<html><body><table><tr><td><a href=""CLSID/70545-GoogleToolbar_32_dll.html"">Google Side Bar</a></td><td>GoogleToolbar_32.dll</td></tr></table></body></html>"
      Debug.WriteLine(GetClsId(html))

   End Sub

   Function GetClsId(html As String) As String
      Const rx As String = "<a href=""(?<clsid>.*)"">.*<td>GoogleToolbar_32.dll</td>"
      Dim m As Match

      m = Regex.Match(html, rx)
      If m.Success Then
         Return m.Groups.Item("clsid").Value
      Else
         Return Nothing
      End If

   End Function

End Module