2014-07-06 61 views
1

我正在寻找一种方法来搜索此字符串信息。搜索复杂的字符串

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

我能够搜索关键字

<td>GoogleToolbar_32.dll</td> 

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

+0

好像你正试图解析HTML。看看[CsQuery](https://github.com/jamietre/CsQuery)。 – Neolisk

回答

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