2014-07-06 96 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