【问题标题】:Searching a complicated string搜索复杂的字符串
【发布时间】:2014-07-06 10:32:04
【问题描述】:

我正在寻找一种方法来搜索这串信息。

<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”,搜索直到结束引号。但我就是不知道该怎么做。

【问题讨论】:

  • 似乎您正在尝试解析 HTML。看看CsQuery

标签: vb.net string search


【解决方案1】:

如果这是一次性的,或者您知道格式是一致的,您可以使用正则表达式。下面的示例将按照您的要求进行。这不是特别健壮,但它适用于您的示例。通常,正则表达式不是您想要用于解析标记语言的。正如 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2016-01-04
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2020-01-06
    相关资源
    最近更新 更多